[英]Django: How to import items from models.py into the views.py
我目前有一個簡單的 models.py 頁面
from django.db import models
class itemType(models.Model):
typeName = models.CharField(max_length = 120)
pub_date = models.DateTimeField(auto_now_add=True, auto_now = False)
def __str__(self):
return self.typeName
class item(models.Model):
itemName = models.CharField(max_length = 120)
price = models.DecimalField(max_digits=5, decimal_places=2)
descip = models.TextField
slug = models.SlugField(max_length = 70)
itemFront = models.ImageField( upload_to = "Images")
itemBack = models.ImageField( upload_to = "Images")
pub_date = models.DateTimeField(auto_now_add=True, auto_now = False)
itemtype = models.ForeignKey('itemType')
def __str__(self):
return self.itemName
現在我試圖將這些信息放到我的 views.py 頁面上,但我不明白如何將其轉移
def shop(request):
context = {
}
return render(request,"shop.html" , context)
導入方法:
from appname.models import ItemType, Item
PS:類名應該是UpperCamelCase
( Item
, ItemType
)
如何使用(隨機示例):
def shop(request):
context = {
'items': Item.objects.filter(name='xyz'),
'types': ItemType.objects.all()
}
return render(request, "shop.html", context)
更新:
更好的方法是導入整個模塊(如果需要,給它一個別名)並使用 as(假設上面的例子),
from appname import models as appname_models
def shop(request):
context = {
'items': appname_models.Item.objects.filter(name='xyz'),
'types': appname_models.ItemType.objects.all()
}
return render(request, "shop.html", context)
PS:總是盡量避免在你的代碼中使用import *
。 閱讀本文以獲得最佳導入實踐。
像這樣的東西你可以試試。
from appname.models import ItemType,Item
or
from appname.models import *
def shop(request):
data = Items.objects.all()
context = {
'items': data,
}
return render(request, 'template.html', context)
from .models import *
或者
from .models import ItemType,Item
from _appname_.models import *
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.