2014-02-02 4 views
0

Я пытаюсь создать страницу профиля пользователя, где пользователи могут управлять «клиентами», на которых они подписаны. В целях тестирования я вызываю всю форму {{customer_subscription}} в шаблоне, и он возвращает правильный экземпляр пользователя, но я ожидаю, что он также будет отмечен подписными «клиентами» этого пользователя в экземпляре формы но он ничего не выбирает. Что я делаю не так?экземпляр Django Form не работает

models.py

class UserProfile(models.Model): 
    user = models.OneToOneField(User) 
    phone = models.CharField(max_length=10, blank=True) 

    def __unicode__(self): 
     return self.user.username 

class Customers(models.Model): 
    customer = models.CharField(max_length=200) 

    def __unicode__(self): 
     return self.customer 

class Customer_Subscription(models.Model): 
    user = models.ForeignKey(User) 
    customers = models.ManyToManyField('Customers') 
    def __unicode__(self): 
     return (self.user) 

forms.py

class CustomerSubscriptionForm(forms.ModelForm): 
    class Meta: 
     model = Customer_Subscription 
     fields = '__all__' 

views.py

def profile(request): 

    userprofile = UserProfile.objects.get(user=request.user) 
    customer_subscription = CustomerSubscriptionForm(instance=userprofile) 
    return render_to_response('profile.html', {'userprofile' : userprofile, 'customer_subscription':customer_subscription, },context_instance=RequestContext(request)) 
+0

Вы создали модельную модель для модели 'Customer_Subscription', поэтому' instance' должен быть экземпляром 'Customer_Subscription'. Вместо этого вы передаете профиль пользователя, что не имеет смысла. – Alasdair

ответ

1

При создании ModelForm, должны использовать экземпляр объекта CustomerSubscription вместо UserProfile

def profile(request): 
    userprofile = UserProfile.objects.get(user=request.user) 
    customer_subs = CustomerSubscription.objects.get(user=userprofile) 
    customer_subscription = CustomerSubscriptionForm(instance=customer_subs) 
    return render_to_response('profile.html', {'customer_subscription' : customer_subscription, 'customer_subscription':customer_subscription, },context_instance=RequestContext(request)) 
+0

Мальчик, теперь я чувствую себя глупо. Спасибо!! – user3184033

Смежные вопросы