第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

set() 和 add() django 都沒有添加到數(shù)據(jù)庫條目

set() 和 add() django 都沒有添加到數(shù)據(jù)庫條目

搖曳的薔薇 2022-11-01 15:53:43
我有以下問題:我有一個 manytomanyfield(在模型 Toppings 中),我無法填充它。我首先嘗試使用 list 和 set(),然后嘗試在 views.py 中僅使用一個對象和 add(),但兩者都不會返回任何內(nèi)容。我一直在查看文檔和其他論壇問題,但我無法弄清楚。任何幫助是極大的贊賞!視圖.pyfrom django.contrib.auth import authenticate, login, logoutfrom django.contrib.auth.models import Userfrom django.core import serializersfrom django.http import HttpResponse, HttpResponseRedirect, JsonResponsefrom django.shortcuts import renderfrom django.urls import reversefrom orders.models import Meal, Topping, Orderdef order(request):    # Request should be ajax and method should be POST.    if request.is_ajax and request.method == "POST":        # Get IDs of meal, topping(s) and user        idmeal = request.POST["idmeal"]        idmeal = Meal.objects.get(pk = idmeal)        # Topping[] is a list of numbers representing IDs for Topping database        topping = request.POST.getlist('topping[]')        for i in range(0, len(topping)):            topping[i] = int(topping[i])        user = request.user        userID = User.objects.get(username=user.username)        topping = Topping.objects.filter(pk__in=topping)        print(topping)        # Create object in Order table        order = Order.objects.create(customerID = userID, mealID = idmeal, price = 12, status = "pending")        # Add values to ManyToManyField        order.toppingsID.set(topping)        print(order.toppingsID)        return JsonResponse({"success": ""}, status=200)    else:        # some error occured        return JsonResponse({"error": ""}, status=400)模型.pyfrom django.db import modelsfrom django.contrib.auth.models import User# Create your models here.class Meal(models.Model):  meal = models.CharField(max_length=64)  classname = models.CharField(max_length=64)  price = models.DecimalField(max_digits=5, decimal_places=2)  def __str__(self):          return f"{self.meal} ({self.classname}) ({self.price}) (id: {self.id})"
查看完整描述

1 回答

?
翻閱古今

TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超5個贊

問題在于設(shè)置或添加到您的字段。問題是打印您的字段。

為了打印 a 的成員ManyToManyField,您需要全部.all()(或.filter()添加到管理器的任何其他功能),例如:

print(order.toppingsID.all())

如果您打印經(jīng)理,它確實(shí)會打印ModelName.None. 例如Meal.objects會做同樣的事情。正是通過使用Meal.objects.all(),您構(gòu)建了一個QuerySet.


查看完整回答
反對 回復(fù) 2022-11-01
  • 1 回答
  • 0 關(guān)注
  • 99 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號