Уведомления

Группа в Telegram: @pythonsu

#1 Июль 17, 2008 16:46:24

lisij
От:
Зарегистрирован: 2008-07-17
Сообщения: 26
Репутация: +  0  -
Профиль   Отправить e-mail  

как создать свое поле Slug_field

у меня есть таблица категорий к новостям и новости:
(model.py)

class Category(models.Model):
name=models.CharField(max_length=100)
slug_name=models.CharField(max_length=100)

def __unicode__(self):
return u'%s' % (self.name)

class News(models.Model):
title = models.CharField(max_length=1000)
body=models.CharField(max_length=1000)
image=models.ImageField(upload_to='/img')
categoryes =models.ManyToManyField(Category)
date_public=models.DateField(auto_now_add=True)
date_change=models.DateField(auto_now=True)
slug_title=models.CharField(max_length=100)
similar_news=models.ManyToManyField("self")

def __unicode__(self):
return u'%s' % (self.title)
(admins.py)
from django.contrib import admin

class AdminNews(admin.ModelAdmin):
prepopulated_fields = {'slug_title': ('title',)}
list_display=('title', 'body')
ordering=('title',)

class AdminCategory (admin.ModelAdmin):
prepopulated_fields = {'slug_name': ('name',)}
list_display=('name', 'slug_name')
ordering=('name',)
селал свою страницу добавление (не через админку):
(views.py)
@render_to('addedNews.html')
def addedNews(request):
if request.method=='POST':
f=NewsForm(request.POST,request.FILES)
if f.is_valid():
new_news=f.save(commit=False)
new_news.some_field='some_value'
new_news.save()
f.save_m2m()
return HttpResponseRedirect('/thanks.html')
else:
f=NewsForm()
return {'form':f}
не хочет работать поле slug. Как возможно создать свое поле slug для это модели, чтобы при добавлении в поле title модели News автоматически заменялось на английский?



Отредактировано (Июль 17, 2008 17:02:30)

Офлайн

#2 Июль 17, 2008 16:54:40

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

как создать свое поле Slug_field

Пожалейте наши мозги, отформатируете текст, а то в таком виде его невозможно читать.

Офлайн

#3 Июль 17, 2008 18:22:35

AlexKiriukha
От:
Зарегистрирован: 2008-02-03
Сообщения: 81
Репутация: +  0  -
Профиль   Отправить e-mail  

как создать свое поле Slug_field

lisij, соглашусь с Ferroman, потому код посмотрел бегло.

У модели в django можно переопределить метод save(), который может сделать подготовку и “доработку” объекта перед самым сохранением, а потом сделать и само сохранение (вызвать метод save() у объекта-родителя).



Офлайн

#4 Июль 18, 2008 09:21:19

lisij
От:
Зарегистрирован: 2008-07-17
Сообщения: 26
Репутация: +  0  -
Профиль   Отправить e-mail  

как создать свое поле Slug_field

а возможно сделать с помощью JavaScript? Говорят что есть в Django такой скриптик котроый хранится в файле urlify.js? Если возможно то как? Просто пока не дружу я со скриптами…



Офлайн

#5 Июль 18, 2008 13:43:09

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

как создать свое поле Slug_field

Вообще-то для модели есть SlugField. У Вас в модели его нет. Я не совсем понимаю зачем использовать slug везде, кроме модели…
Может стоить и в модели его использовать?
Я бы сделал так, как советует Алекс.

Офлайн

#6 Июль 18, 2008 13:53:13

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

как создать свое поле Slug_field

lisij
Просто пока не дружу я со скриптами…
Так подружитесь. Они прикольные ребята;)



Офлайн

#7 Июль 18, 2008 15:10:40

lisij
От:
Зарегистрирован: 2008-07-17
Сообщения: 26
Репутация: +  0  -
Профиль   Отправить e-mail  

как создать свое поле Slug_field

Ferroman
class AdminNews(admin.ModelAdmin):
prepopulated_fields = {'slug_title': ('title',)}
list_display=('title', ‘body’)
ordering=('title',)
prepopulated_fields создает slug_field



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version