首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IntegrityError at /products/new/ NULL约束失败: products_product.user_id

IntegrityError at /products/new/ NULL约束失败: products_product.user_id
EN

Stack Overflow用户
提问于 2018-11-18 19:17:52
回答 1查看 523关注 0票数 0

我正在创建一个市场,选择的用户可以拥有他们的商店和他们的产品。创建Createview类时,我正在运行一个错误。我需要表单,其中用户添加了一个新的产品,返回他自己的商店名称的基础上的商店模型,但看起来有一个错误,如上面。以下是我的应用程序:

models.py

代码语言:javascript
复制
class Shop(models.Model):

    shop_name            = models.CharField(max_length=120)
    owner    = models.OneToOneField(User,on_delete=models.CASCADE, related_name="owner")

    def __str__(self):
        return self.shop_name

class Product(models.Model):
    user            = models.ForeignKey(settings.AUTH_USER_MODEL,on_delete=models.CASCADE,)
    shop            = models.ForeignKey (Shop, on_delete=models.CASCADE, related_name='shop')
    category        = models.ForeignKey(Category, verbose_name ='Categoria',on_delete=False )
    title           = models.CharField(max_length=120)
    slug            = models.SlugField(blank= True, null=True, unique = True)

views.py

代码语言:javascript
复制
class ProductCreateView(LoginRequiredMixin,SubmitBtnMixin, CreateView):
    model = Product
    form_class = ProductForm
    template_name = 'form.html'
    success_url = '/products/list'
    submit_btn = 'Add Product'

    def form_valid(self, form):
        new_product = form.save(commit=False)
        user = self.request.user
        s = Shop.objects.get (owner=user)
        new_product.shop = s
        new_product.save()
        return super (ProductCreateView, self).form_valid(form)

FORM.PY

代码语言:javascript
复制
class ProductForm(ModelForm):

    class Meta:
        model = Product
        fields = ['category', 'title', 'description', 'price', 'image']
        exclude = ['shop']
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-19 02:15:46

在您的产品模型中,我没有看到属性'description',但是在您的表单中,您已经指定了一个字段'description‘。尝试将null=True、blank=True添加到产品模型中的用户字段中。

代码语言:javascript
复制
class Product(models.Model):
    user = models.ForeignKey(settings.AUTH_USER_MODEL,on_delete=models.CASCADE, null=True, blank=True)
    shop = models.ForeignKey (Shop, on_delete=models.CASCADE, related_name='shop')
    category = models.ForeignKey(Category, verbose_name ='Categoria',on_delete=False )
    title = models.CharField(max_length=120)
    slug = models.SlugField(blank= True, null=True, unique = True)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53364569

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档