2017-11-24 3 views
0

models.pydjango 'ModelFormOptions' Objekt hat kein Attribut 'virtual_fields'

class Products(models.Model): 
company = models.ForeignKey(Companys) 
name = models.CharField(unique = True, max_length = 50) 
description = models.CharField(unique = True, max_length = 500) 
price = models.PositiveIntegerField() 
in_stock = models.BooleanField(default = True) 
crated = models.DateTimeField(auto_now_add=True) 
def __str__(self): 
    return self.name 

forms.py

class ProductForm(forms.ModelForm): 
class Meta: 
    model = Products 
    fields = '__all__' 
name = forms.CharField() 
description = forms.CharField(widget = forms.Textarea,) 
company = forms.ModelChoiceField(queryset = Companys.objects.all(), label = 'Company') 
in_stock = forms.BooleanField(initial = True) 
price = forms.IntegerField() 

views.py

class ProductCreate(CreateView, ProductEditMixin): 
model = ProductForm 
template_name = 'store/product_add.html' 
fields = '__all__' 
def post(self, request, *args, **kwargs): 
    self.success_url = reverse('get_context_data', kwargs = {'pk' : Companys.objects.first().id}) 
    return super(ProductCreate, self).post(request, *args, **kwargs) 

Bitte mir helfen. Ohne Formularcode funktioniert. Aber mit Formen habe ich AttributeError: 'ModelFormOptions' Objekt hat kein Attribut 'virtual_fields' Fehler

+0

können Sie die Ansicht post-Methode zeigen? die Methode, die Sie verwenden, um die Post-Anfrage zu behandeln – Lemayzeur

+0

Ich füge es hinzu, aber ich habe diesen Fehler nach dem Kommentieren von Post und get_context_data – Hman

Antwort

0

ProductForm ist ein Formular, kein Modell. Es sollte im Attribut form_class der Ansicht gehen, nicht model.

(ich auch nicht verstehen, warum Ihr Product das Modell Unternehmen verwendet anstatt Produkt, aber das macht nichts.)

+0

Bevor Frage schreiben, ich habe einige Änderungen vorgenommen und vergessen, Firma in Produkte zu ändern. Jetzt ist Code Arbeit, danke – Hman

Verwandte Themen