を呼び出すとUser.create_user
、次のエラーが表示されます。
IntegrityError at /login
users_user.status_id may not be NULL
注: SO に関する他の IntegrityError の質問を多数確認しましたが、この問題を修正できませんでした。
私のモデルは次のようになります。
class Status(models.Model):
status = models.CharField(max_length=200)
status_time = models.DateTimeField('date published')
def __init__(self, status = '', time=timezone.datetime.min, *args, **kwargs):
self.status = status
self.status_time = time
super(Status, self).__init__(*args, **kwargs)
def set_status(self, s):
self.status = s
self.status_time = timezone.datetime.now()
self.save()
def get_status(self):
now = timezone.datetime.now()
if now-self.status_time<datetime.timedelta(minutes=15):
return self.status
return None
class User(models.Model):
facebook_id = models.CharField(max_length=200)
friends = ListField()
status = models.OneToOneField(Status)
@classmethod
def create_user(cls, fid, friends):
k = User()
k.facebook_id = fid
k.friends = friends
k.save() #THE PROBLEM IS HERE
k.status = Status()
k.status.set_status('')
k.status.save()
k.save()
また、 User.status_id が何を表しているのかまだわかりません。なぜそこにあり、なぜそれができないのNone
でしょうか?