我正在嘗試通過ManyToManyField. 它main.ModelName.None在模板中回傳。
資料通過管理面板可見。
因此,我假設問題與視圖或我在 HTML 中呈現資料的方式有關。
我在該主題上發現了一些具有相同問題的帖子,但似乎正在處理我沒有收到的錯誤訊息。
就我而言,我只是無法渲染資料。
這是代碼: models.py
class Supplier_Profile(models.Model):
name = models.CharField('Supplier Profile', max_length=120, blank=True)
user = models.ManyToManyField(User)
def __str__(self):
return str(self.name)
class Project(models.Model):
id = models.AutoField(primary_key=True)
name = models.CharField(verbose_name="Name",max_length=100, blank=True)
def __str__(self):
return str(self.name) if self.name else ''
class Product(models.Model):
project = models.ManyToManyField(Project, blank=True, related_name="available_products")
name = models.CharField('Product Name', max_length=120, blank=True)
class Meta:
db_table='Product'
def __str__(self):
return str(self.name)
視圖.py
def show_product(request, product_id):
products = Product.objects.get(pk=product_id)
return render(request, 'main/show_product.html',{'products':products})
模板
<h6>Project Name</h6>
{{ products.project }}
這回傳main.Project.None
編輯 要使這篇文章完整:
在 Rohit 的支持下,我{{ products.project.all }}在我的模板中使用了解決問題的方法。
正如您將在這篇文章中發現的那樣(Django ManyToManyField 指的是其他應用程式回傳“app.model.None”)回傳“none”并不意味著沒有資料,它只是管理器的表示方式。
這呈現了丑陋<QuerySet [<Project: Project 1>]>,然后我將其轉換為回圈以僅回傳專案名稱Project 1。
<h6>Project Name</h6>
{% for project in products.project.all %}
{{ project.name }}<br />
{%endfor%}
uj5u.com熱心網友回復:
利用 {{ products.project.all }}
參考:https ://docs.djangoproject.com/en/4.1/topics/db/examples/many_to_many/
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/514841.html
