Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 12, 2012 13:51:00

SorrowFuck
От: Хабаровск
Зарегистрирован: 2012-10-10
Сообщения: 64
Репутация: +  2  -
Профиль   Отправить e-mail  

Запутался в ModelForm и instance

Есть модель:

class UserAbout(models.Model):
    user = models.ForeignKey(User, related_name='UserAboutToUser', unique=True)
    about = models.TextField(max_length = 1000, blank=True, null=True, unique=False)
    family = models.TextField(max_length = 1000, blank=True, null=True, unique=False)
    why = models.TextField(max_length = 1000, blank=True, null=True, unique=False)
    trust = models.TextField(max_length = 1000, blank=True, null=True, unique=False)
    hobby = models.TextField(max_length = 1000, blank=True, null=True, unique=False)
    job = models.TextField(max_length = 1000, blank=True, null=True, unique=False)
    politic = models.CharField(max_length = 100, blank=True, null=True, unique=False)
    book = models.TextField(max_length = 1000, blank=True, null=True, unique=False)
    film = models.TextField(max_length = 1000, blank=True, null=True, unique=False)
    music = models.TextField(max_length = 1000, blank=True, null=True, unique=False)
class UserAboutForm(ModelForm):
    class Meta:
        model = UserProfile
        exclude = ('user',)

Задача: сделать форму для редактирования этой модели с instance данными, которые там хранятся на момент изменения (обычная форма редактирования по сути).
Есть представление:
    
def UserProfileEdit(request, offset):
mainProfile = User.objects.get(username = offset[0])
About = UserAbout.objects.filter(user = mainProfile).values(
'about',
'family',
'why',
'trust',
'hobby',
'job',
'politic',
'book',
'film',
'music',)
form = UserAboutForm(instance = About[0])
return render_to_response ("main.html", {
'form': form,
}, context_instance = RequestContext(request))
Интерпретатор ругается на то, что словарь не содержит _meta атрибута.
Как быть?



_________
Новичок

Отредактировано SorrowFuck (Ноя. 12, 2012 13:53:54)

Офлайн

#2 Ноя. 12, 2012 14:04:49

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Запутался в ModelForm и instance

Не передавать в инит формы словарь, очевидно же. А метод .values() возвращает как раз список словарей.
Почему не

UserAbout.objects.filter(user = mainProfile)
form = UserAboutForm(instance = About[0]) 



Офлайн

#3 Ноя. 12, 2012 14:20:29

SorrowFuck
От: Хабаровск
Зарегистрирован: 2012-10-10
Сообщения: 64
Репутация: +  2  -
Профиль   Отправить e-mail  

Запутался в ModelForm и instance

FishHook
Не передавать в инит формы словарь, очевидно же. А метод .values() возвращает как раз список словарей.Почему не
Собственно я так пробовал, но вот, что меня смутило это то, что вместо UserAboutForm возвращается UserProfileForm пустая естественно.

class UserProfile(models.Model):
    user = models.ForeignKey(User, related_name='UserProfileToUser', unique=True)
    age = models.IntegerField()
    rating = models.FloatField()
    avatar = models.ImageField(blank=True, null=True, upload_to="avatars")
    citizenship = models.CharField(max_length=30, blank=True, null=True)
    country = models.CharField(max_length=30, blank=True, null=True)
    city = models.CharField(max_length=30, blank=True, null=True)
    VERIFICATION_CHOICES = (
                        (u'Н', u'Низкий'),
                        (u'С', u'Средний'),
                        (u'В', u'Высокий'),
                    )
    verification = models.CharField(max_length=1, choices=VERIFICATION_CHOICES, blank=True, null=True)  
    
class UserProfileForm(ModelForm):
    class Meta:
        model = UserProfile
        exclude = ('user', 'verification',)



_________
Новичок

Офлайн

#4 Ноя. 12, 2012 14:25:44

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Запутался в ModelForm и instance

Ну теперь вообще не понятно,
В форме

model = UserProfile
Во вьюхе
About = UserAbout.objects....
Ты либо не от той модели инстанс делаешь, либо не от той модели форму делаешь.



Офлайн

#5 Ноя. 12, 2012 14:33:08

SorrowFuck
От: Хабаровск
Зарегистрирован: 2012-10-10
Сообщения: 64
Репутация: +  2  -
Профиль   Отправить e-mail  

Запутался в ModelForm и instance

FishHook
Ну теперь вообще не понятно, В форме
А слона-то я и не заметил. Спасибо.



_________
Новичок

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version