簡體   English   中英

Django:如何將項目從 models.py 導入到 views.py

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM