@DoILookLikeASubscriber

Как исправить ошибку "IntegrityError at /createad/ (1048, "Column 'user_id' cannot be null")"?

Всем привет! Делаю сайт по перепродаже комиксов. Авторизованный пользователь создает объявление в котором заполняет поля. Есть поле user, которое является Foreign Key (Django User). Я понимаю, что он требует идентификатор. Но я не понимаю как мне его передать. Через request.user.username не работает. Ниже представлен код файлов:

models.py
class Ad(models.Model):
    ad_id = models.AutoField(primary_key=True, verbose_name='ID объявления')
    user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, verbose_name='Пользователь')
    title = models.CharField(max_length=50, null=False, blank=False, verbose_name='Название')
    description = models.TextField(null=True, blank=True, verbose_name='Описание')


forms.py
class AdForm(forms.ModelForm):
    class Meta:
        model = Ad
        fields = ('title', 'description', 'publisher', 'author',
                  'pub_year', 'pub_type', 'price')


views.py
def create_ad(request):
    if request.method == 'POST':
        form = AdForm(request.POST)
        if form.is_valid():
            form.save()
            return redirect('user')
    else:
        form = AdForm()
    return render(request, 'create_ad.html', {'form': form})
  • Вопрос задан
  • 58 просмотров
Решения вопроса 1
@Everything_is_bad
Через request.user.username не работает.
конечно не работает, ты зачем-то добавил username. Доки точно читал?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы