на сайте сделал систему регистрации. каждый зарегистрированный пользователь имеет доступ к своему профилю, в котором может менять анкетную информацию. в том числе устанавливать статус из набора имеющихся статусов. набор статусов хранится в модели:
class UserStatus(models.Model): status = models.CharField(max_length=30)
вот модель для профиля пользователя:
class UserProfile(models.Model): user = models.OneToOneField(User) family = models.CharField(max_length=30, blank=True) name = models.CharField(max_length=30, blank=True) nation = models.CharField(max_length=30) status = models.ForeignKey(UserStatus) avatar = models.ImageField(upload_to='userprofile/', blank=True) nation_show = models.BooleanField(default=True, blank=True) User.profile = property(lambda u: UserProfile.objects.get_or_create(user = u)[0])
вот форма, которая отображается на странице профиля:
class UserProfileForm(forms.ModelForm): status = forms.ModelChoiceField(queryset=UserStatus.objects.all(), label= 'status', widget=forms.Select()) class Meta: model = UserProfile fields = ('family', 'name', 'nation', 'status', 'nation_show', 'avatar')
по моему плану пользователь должен заходить на страницу своего профиля и выбирать статус из выпадающего списка. но проблема в том, что при загрузке страницы профиля на экран выводится следующее сообщение об ошибке:
IntegrityError at /userprofile/
userprofile_userprofile.status_id may not be NULL
Request Method: GET
Request URL: http://127.0.0.1:8000/userprofile/
Django Version: 1.6.2
Exception Type: IntegrityError
Exception Value:
userprofile_userprofile.status_id may not be NULL
Exception Location: C:\Python33\lib\site-packages\django\db\backends\sqlite3\base.py in execute, line 450
Python Executable: C:\Python33\python.exe
Python Version: 3.3.3
…
c:\Python33\django_projects\mutants\userprofile\views.py in user_profile
profile = user.profile …
▶ Local vars
C:\Python33\lib\site-packages\django\utils\functional.py in inner
return func(self._wrapped, *args) …
▶ Local vars
c:\Python33\django_projects\mutants\userprofile\models.py in <lambda>
User.profile = property(lambda u: UserProfile.objects.get_or_create(user = u)) …
▶ Local vars
помогите пожалуйста реализовать смену статуса через выпадающий список