Есть объекты Article, Topic и Author. При добавлениии нового объекта Article, как сделать что бы:
поля auhor и created заполнить непосредственно перед сохранением объекта в базу
в поле topic в выпадающем списке были значения Topic.title вместо текста Topic object
полям формы задать стили или класс
models.py:
class Topic(models.Model):
title = models.CharField(max_length=127)
class Article(models.Model):
title = models.CharField(max_length=127)
description = models.TextField(max_length=1023)
topic = models.ForeignKey(Topic)
auhor = models.ForeignKey(User)
created = models.DateTimeField()
forms.py:
class ArticleForm(ModelForm):
class Meta(object):
model = Article
views.py:
from django.views.generic.edit import CreateView
class CreateArticle(CreateView):
form_class = ArticleForm
template_name = 'create_article.html'
success_url = '/articles/'
def form_valid(self, form):
# Здесь необходимо добавить текущую дату в created
# и id пользователя в author
Уважаемый, все есть в доках. Текущего пользовалеля можно взять з request.user (если он аутентифицирован). Для того, чтоб не парится с текущей датой
created = models.DateTimeField(auto_now_add=True)
вот так.
Что касается выпадаючего списка, не ясно где он выпадает и что вы хотите. Попробуйте так
class Topic(models.Model):
title = models.CharField(max_length=127)
def __unicode__(self):
return self.title
Касательно стилей. Ну вообще влом писать, потому вот.
p.s. Блин, ток что проснулся и просмотрел, что тут CreateView юзается( Приношу свои извенения, но все же кое-что всетаки возможно применить.