2013-06-23 80 views
0

我有一个django视图,用户可以注册。对于从这一点开始注册的任何用户,我想将布尔值设置为True。如何在默认情况下将Django布尔值设置为True,它是false?

class Person(models.Model): 
     user = models.OneToOneField(User, primary_key=True) 
     facebook_id = models.CharField(max_length=225, unique=True, null=True, blank=True) 
     twitter_id = models.CharField(max_length=225, unique=True, null=True, blank=True) 
     suggested_person = models.BooleanField(default=False) 
     userPic = models.CharField(max_length=128, blank=True) 
     phoneNum = models.CharField(max_length=128, blank=True) 

的注册Django的观点:

@csrf_exempt 
def signup(request): 

    if request.method == 'POST': 
     # Parse the JSON 
     data = json.loads(request.raw_post_data) 
     # Check if the user already exists 
     if User.objects.filter(username = data['username']).exists(): 
      return HttpResponse("Username already exists") 

     # If not then create new user with the supplied info 
     else: 
      newUser = User() 
      newUser.username = data['username'] 
      newUser.email = data['email'] 
      newUser.set_password(data['password']) 
      newUser.first_name = data['firstName'] 
      newUser.last_name = data['lastName'] 
      newUser.save() 

      newPerson = Person(user = newUser, phoneNum = data['phoneNum'], userPic = data['userPic'], userCover = data['userCover']) 
      if 'token' in data: 
       if Person.objects.filter(token=data['token']).exists(): 
        oldToken = Person.objects.get(token=data['token']) 
        oldToken.token = None 
        oldToken.save() 
        newPerson.token = data['token'] 
        newPerson.save() 
       else: 
        newPerson.token = data['token'] 
        newPerson.save() 

    #perhaps like this? newPerson.suggested_person =True 
      newPerson.save() 
      newUser.relationships.add(newUser) 

      return HttpResponse(str(newUser.id)) 

    # If not POST 
    else: 
     return HttpResponse("Signup here People") 

我怎样可以着手对谁从这一点向前“suggested_person”签署的任何用户?

回答

2

如果您不能或不想改变你的模型默认定义,你可以创建你的人的实例,传递你所需的值:

newPerson = Person(user = newUser, phoneNum = data['phoneNum'], userPic = data['userPic'], userCover = data['userCover'], suggested_person=True) 

或者你可以设置属性保存之前:

newPerson.suggested_person = True 
+0

我想到了之后,我的解决方案与您提到的第二个完全相同。感谢您花时间回答我的问题。我已经接受你的答案! – noahandthewhale

相关问题