Найти - Пользователи
Полная версия: Запутался в ModelForm и instance
Начало » Django » Запутался в ModelForm и instance
1
SorrowFuck
Есть модель:
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 атрибута.
Как быть?
FishHook
Не передавать в инит формы словарь, очевидно же. А метод .values() возвращает как раз список словарей.
Почему не
UserAbout.objects.filter(user = mainProfile)
form = UserAboutForm(instance = About[0]) 
SorrowFuck
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',)
FishHook
Ну теперь вообще не понятно,
В форме
model = UserProfile
Во вьюхе
About = UserAbout.objects....
Ты либо не от той модели инстанс делаешь, либо не от той модели форму делаешь.
SorrowFuck
FishHook
Ну теперь вообще не понятно, В форме
А слона-то я и не заметил. Спасибо.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB