2015-08-10 3 views
0

Я в настоящее время простая страница models.py изДжанго: Как импортировать элементы из models.py в views.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) 

ответ

-2
from _appname_.models import * 
+0

Хотя этот код может ответить на вопрос, предоставляя дополнительный контекст относительно того, почему и/или как этот код отвечает на вопрос, улучшает его долгосрочную ценность. – NathanOliver

5

Как импортировать:

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) 

Обновление:

Более лучший способ импортировать весь модуль (дать ему псевдоним если требуется) и использовать в качестве (предполагается, что в приведенном выше примере),

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 * в вашем код. Прочтите this для наилучших методов импорта.

0

Что-то вроде этого вы можете попробовать.

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) 
Смежные вопросы