Добрый день !
Вот я написал модель, но не как не могу понять как это все вывести в браузер.
Можете показать пример языка шаблона джанго как это все работает для этой модели.
-- coding: utf-8 --
from django.db import models
from mptt.models import MPTTModel, TreeForeignKey
import random
from django.conf import settings
from ckeditor.fields import RichTextField
Create your models here.
def make_upload_path(instance, filename, prefix = False):
# переопределения имени загруски файла
n1 = random.randint(0,1000)
n2 = random.randint(0,1000)
n3 = random.randint(0,1000)
filename = str(n1)+"",+str(n2)+""+str(n3) + '-jpg'
return u"%s/%s" % (settings.IMAGE_UPLOAD_DIR, filename)
class Category(MPTTModel):
name = models.CharField(max_length=150,default='', blank=True, verbose_name='Категория')
parent = TreeForeignKey('self', null=True, blank=True, related_name='chidren')
title = models.CharField(max_length=200, default='', verbose_name='Заголовок', blank=True)
meta_desc = models.CharField(max_length=200, default='', verbose_name='Мета опесание', blank=True)
meta_key = models.CharField(max_length=200, default='', verbose_name='Ключивые слова', blank=True)
slug = models.CharField(max_length=250, default='', blank=True, verbose_name='Урл')
image = models.ImageField(upload_to=make_upload_path, default='', blank=True, verbose_name='Изображение')
ublished = models.BooleanField(verbose_name='Опубликован')
ordering = models.IntegerField(verbose_name='Порядок сортировки', default=0, blank=True, null=True)
def unicode(self):
return self.name
def pic(self):
if self.image:
return u"<img src='%s' width='70'/>" % self.image.url
else:
return '(none)'
pic.short_description = u'Изображение'
pic.allow_tags = True
class Meta:
verbose_name_plural = 'Категории'
verbose_name = 'Категория'
class MPTTMeta:
order_insertion_by = ['name']
class Produkt(models.Model):
name = models.CharField(max_length=150,default='', blank=True, verbose_name='Названия')
category = models.ManyToManyField(Category, related_name='cat')#Продукт может находится вразных категориях
title = models.CharField(max_length=200, default='', verbose_name='Заголовок', blank=True)
meta_desc = models.CharField(max_length=200, default='', verbose_name='Мета опесание', blank=True)
meta_key = models.CharField(max_length=200, default='', verbose_name='Ключивые слова', blank=True)
slug = models.CharField(max_length=250, default='', blank=True, verbose_name='Урл')
image = models.ImageField(upload_to=make_upload_path, default='', blank=True, verbose_name='Изображение')
short_text = RichTextField(verbose_name='Краткое описание')
full_text = RichTextField(verbose_name='Полное описание')
price = models.DecimalField(max_digits=5, decimal_places=2, verbose_name='Цена', blank=True, null=True)
ublished = models.BooleanField(verbose_name='Опубликован')
ordering = models.IntegerField(verbose_name='Порядок сортировки', default=0, blank=True, null=True)
def unicode(self):
return self.name
def pic(self):
if self.image:
return u"<img src='%s' width='70'/>" % self.image.url
else:
return '(none)'
pic.short_description = u'Изображение'
pic.allow_tags = True
class Meta:
verbose_name_plural = 'Товары'
verbose_name = 'Товар'
class MPTTMeta:
order_insertion_by = ['name']
class ProduktImages(models.Model):
produkt = models.ForeignKey(Produkt, null=True, blank=True)
image = models.ImageField(upload_to=make_upload_path, default='', blank=True, verbose_name='Изображение')
def __unicode__(self):
return self.image
def pic(self):
if self.image:
return u"<img src='%s' width='70'/>" % self.image.url
else:
return '(none)'
pic.short_description = u'Изображение'
pic.allow_tags = True
class Meta:
verbose_name_plural = 'Изображения'
verbose_name = 'Изображение'
class MPTTMeta:
order_insertion_by = ['name']
Также я использовал эти библиотеке
django-mptt == 0.7.4
pillow == 2.8.2
django-ckeditor == 4,4,8