Форум сайта python.su
ребят, я погибаю. помогите пожалуйста
на сайте сделал систему регистрации. каждый зарегистрированный пользователь имеет доступ к своему профилю, в котором может менять анкетную информацию. в том числе устанавливать статус из набора имеющихся статусов. набор статусов хранится в модели:
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
Отредактировано zlodiak (Апрель 20, 2014 19:01:36)
Офлайн
Зачем отдельно писать
status = forms.ModelChoiceField(queryset=UserStatus.objects.all(), label= 'status', widget=forms.Select())
Офлайн
fongostevвсё равно не работает. теперь ошибка такая:
Зачем отдельно писать
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
Офлайн
zlodiak,
В БД таблицы менял руками? С sqlite есть известная проблема: если руками через гуёвину поправить что-то в таблице, то слетает AUTOINCREMENT у id. Если база пустая, то проще пересоздать.
Офлайн
FishHookда руками. пересоздать не проблема, но как ещё можно заполнить таблицу? только руками…
zlodiak,В БД таблицы менял руками? С sqlite есть известная проблема: если руками через гуёвину поправить что-то в таблице, то слетает AUTOINCREMENT у id. Если база пустая, то проще пересоздать.
Офлайн
zlodiakЯ не говорил про заполнять, я говорил про изменение схемы.
можно заполнить таблицу
Офлайн
FishHookБД пересоздал полностью. та же самая ошибка
Я не говорил про заполнять, я говорил про изменение схемы.
Офлайн
Хм.
UserProfile.objects.get_or_create(user = u)
Офлайн