python - 想保存每个用户django的数据

标签 python django

我有用户配置文件模型

class UserProfile(models.Model):
    user = models.ForeignKey(User) 
    score = models.IntegerField(max_length = 50, blank = True,null = True)


    def __str__(self):

        return "%s's profile" % self.user

我的观点是

@login_required()
def score(request):
    if request.is_ajax():
        print request.method
        if request.method == 'GET':
            try:
                user1 = UserProfile.objects.get(user=request.user)
                print user1
                user1.score = request.GET.get('bjpFan')
                user1.save()
                print user1.score
                print "rahul"
                return HttpResponse("%s" % user1.score )

            except UserProfile.DoesNotExist:
                print "Gaurav"
                user1 = create_user()
            return HttpResponse("%s" % user1.score )

所以分数被存储到数据库中,但是当新用户使用这个应用程序时,他的对象没有被存储。如果用户是第一次使用此应用程序,则希望为他创建新对象。 我还创建了 userprofile 对象。

def create_user(username, email = None, password = None):   

    try:
        user = User.objects.get(username=username)
    except:       
        user = User(username=username,email=email)
        user1=UserProfile(user=user.request, score=user.score)

        user.save()
        user1.save()      
    return user

但是当新用户访问此应用程序时,他的姓名和分数不会被存储。他的所有 facebook 数据都存储在 facebook 模型中。 请帮助我。

最佳答案

最稳健的方法是使用信号:

class UserProfile(models.Model):
    user = OneToOneField( User, editable = False )   #<----One to One! Not FK.
    score = models.IntegerField(max_length = 50, default = 0) 

#
# this few lines of code in your UserProfile models.py will 
# create the profile just after user is created.
#
from django.dispatch import receiver
from django.db.models.signals import post_save
@receiver(post_save, sender=User)
def createProfile(sender, instance, created, **kwargs):
    if created:
        UserProfile.objects.create( user = instance, )

关于python - 想保存每个用户django的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22983221/

相关文章:

python - 使用本地化日期进行 Django 查询

python - 陷入欧拉计划#10

python - 如何使用OpenCV从mp4从mp4创建帧数组

django错误: "Caught AlreadyRegistered"?只注册了一次模型

python - 我该如何解决 "ValueError - Cannot serialize"?

Django:如何通过模板获取由外键连接的数据?

python - Django,TastyPie commit_on_success 错误

python - 使用 MySQLdb 执行 INSERT 时如何保护文本

python - 具有单位矩阵和正则矩阵的高效 Kronecker 积 - NumPy/Python

python - 如何在Pycharm Windows 中解决 "django.db.utils.OperationalError: FATAL: password authentication failed for user "Oeloun-pc""?