我的模型就像
class Dish(models.Model):
names = models.ManyToManyField(DishName)
restaurant = models.ManyToManyField(Restaurant)
我的视图文件就像
def AddDish(request):
if request.method == 'POST':
dishname = request.POST.get('name')
res = request.POST.get('restaurant')
restaurant = Restaurant.objects.get(id=res)
r = Dish(generic_name=GenericName,
names=dishname,
restaurant=restaurant,
)
r.save()
当我尝试将我的值添加到 Dish 模型时,出现此错误
禁止直接分配给多对多集合的前端。改用 restaurant.set()。
我尝试使用 setrestaurant.set(r)
但没有像我尝试过的那样使用它,但直到现在还没有运气。任何帮助将不胜感激。提前致谢
def AddDish(request):
if request.method == 'POST':
dishname = request.POST.get('name')
res = request.POST.get('restaurant')
restaurant = Restaurant.objects.get(id=res)
dn = DishName(name=dishname)
r = Dish.objects.create()
r.restaurant.add(restaurant)
r.names.add(dn)
然而,我不相信你在这里应该首先使用 a ManyToManyField
。如果一道菜只属于一个 Restaurant
,那么你可能应该使用ForeignKey
.
您首先需要在更改关系之前保存您的关系,否则,您没有分配给它的主键。Dish
ManyToMany
Dish
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句