我正在创建一个市场,在那里选定的用户可以有他们的商店和CRUD他们的产品。创建Createview类时出现错误。我需要用户添加新产品的表单,根据商店模型返回他自己的商店名称,但看起来像上面有一个错误。以下是我的应用程序:
models.py
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
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
class ProductForm(ModelForm):
class Meta:
model = Product
fields = ['category', 'title', 'description', 'price', 'image']
exclude = ['shop']
在您的产品模型中,我没有看到“描述”属性,但是在您的表单中,您指定了“描述”字段。尝试在产品模型的用户字段中添加null=True,blank=True。
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)
问题内容: 我收到此错误消息: 第40行的错误1217(23000):无法删除或更新父行:外键约束失败 …当我尝试放置桌子时: …定义如下: 有趣的是, 我已经删除 了模式中具有外键的 所有其他表。实际上,除了表外,数据库是空的。 如果数据库中没有其他对象,怎么可能会有子行?据我所知,InnoDB不允许在其他模式上使用外键,对吗? (我什至可以运行命令:-?) 问题答案: 两种可能性: 在另一个架
嗨,我知道有人问过这个问题,但我还没有找到正确的答案,为什么当我尝试做我的第二个插入: 我得到了错误: 错误1452(23000):无法添加或更新子行:外键约束失败(.,约束外键()引用()) 下面的DDL代码:
我尝试使用cbv的im来保存一个对象,我不熟悉使用它,并且我尝试使用create view来保存一个对象,但是得到这个错误: "Not NULL约束失败:forum_question.user_id" 我将不胜感激初学者友好的解释如何解决这个问题,也许还有提示,谢谢! models.py: 表单.py: 视图.py: 例外?: 编辑3: 其他信息: 回溯(最近一次调用最后):文件“/主页/钛/本地
问题内容: 我正在使用Django从Tango中学习Django,但是在输入时,我始终收到此错误: 这是输出: Models.py: 问题答案: 造成这种限制的原因可能是,在你最初迁移它时,在类中没有任何字段被调用(第一次迁移),并且在模型中添加了该字段之后,当你运行时,你已将默认值设置为静态值值(即或”等),并且打破了类别表的表段列的唯一约束,其中表段应该是唯一的,但这不是因为所有条目都将获得该
问题内容: 我们如何确保列表中的各个字符串不为null /空白或遵循特定的模式 我也想添加图案 但是我可以不用它。但是我绝对希望有一个约束,它可以检查列表中的任何字符串是否为null或空白。而且Json模式看起来如何 问题答案: 您可以为电子邮件字符串创建一个简单的包装类: 然后在现有对象中标记该字段: 然后,验证器将验证列表中的每个对象。
我正在使用model属性来获取employee对象。xml文件包含hibernate验证器依赖项。