2017-04-16 2 views
-1

Ich möchte die Profilinstanz automatisch der Reihenfolge zuweisen, ich habe versucht, wie in den Ansichten gezeigt, aber immer noch Formularfehler zeigt Profil erforderlich. Hoffe jemand kann helfen, Danke. die folgenden in der form_valid MethodeWie man den Fremdschlüssel automatisch in Django einstellt View erstellen

models.py

class Profile(models.Model): 
    user = models.OneToOneField(settings.AUTH_USER_MODEL) 
    first_name = models.CharField(max_length=80,blank=True, null=True) 
    middle = models.CharField(max_length=80, blank=True, null=True) 
    last_name = models.CharField(max_length=80, blank=True, null=True) 


class Order(models.Model): 
     profile = models.ForeignKey(Profile) 
     qty_ordered = models.IntegerField(blank=True, null=True) 

views.py

class OrderCreate(CreateView): 
model = Order 
form_class = OrderForm 

success_url = reverse_lazy('home') 

def form_valid(self, form): 
    form.instance.order_id = self.kwargs.get('pk') 
    return super(OrderCreate, self).form_valid(form) 

order_form.html

<form method='POST' action='' enctype='multipart/form-data'>{% csrf_token %} 
    {{ form.qty_ordered| as_crispy_field }} 
<input type='submit' class='btn btn-primary' value='Save & Continue' /> 

Antwort

0

Try Zugabe.

def form_valid(self, form): 
    # ... 
    profile = Profile.objects.get(user=self.request.user) # or something similar 
    form.instance.profile = profile 
    # return the super as you do 
+0

Vielen Dank, es funktioniert –

Verwandte Themen