Объекты не загружают объект в БД
Я пытаюсь загрузить объект в DB, используя django, но ничего не происходит. Я выполняю команды makemigration, migrate.
admin.py
from .models import Product
admin.site.register(Product)
models.py
class Product(models.Model):
user = models.OneToOneField(User, null = True, on_delete=models.CASCADE)
#data = models.DateTimeField(verbose_name='date joined', auto_now_add=True)
productC = (
('apple', 'apple'),
('water', 'water'),
('tomato', 'tomato'),
)
productChoose = models.CharField(max_length=10, blank=False, null= False, choices = productC)
numbers= models.PositiveIntegerField()
def __str__(self):
return f"{self.user}"
forms.py
class ProductForm(forms.ModelForm):
class Meta:
model= Product
fields =['productChoose', 'numbers',]
productC = (
('apple', 'apple'),
('water', 'water'),
('tomato', 'tomato'),
)
widgets = {
# 'data': forms.DateTimeField(attrs= {'class': 'form-control'}),
'productChoose': forms.Select(choices= productC, attrs= {'class': 'form-control'}),
'numbers': forms.NumberInput(attrs= {'class': 'form-control'}),
}
def clean_productChoose(self):
if self.is_valid():
productChoose=self.cleaned_data['productChoose']
return productChoose
def clean_numbers(self):
if self.is_valid():
numbers=self.cleaned_data['numbers']
return numbers
view.py
def training_view(request, *args, **kwargs):
if not request.user.is_authenticated:
return redirect('/login')
context = {}
if request.method=="POST":
products=ProductForm(request.POST, instance = request.user)
if products.is_valid():
products.save()
return redirect('/home')
messages.info(request, 'Your training has been send with success!')
else:
products=ProductForm(instance = request.user)
context['products']= products
return render(request, 'product.html', context)
product.html
{% block content%}
<form method="POST" action=".">
{% csrf_token %}
<h1>Products </h1>
<div class="container">
{% csrf_token %}
<p>
<label for="productChoose"><b>Product </b></label>
{{products.productChoose}}
</p>
<p>
<label for="numbers"><b>Numbers: </b></label>
{{products.numbers}}
</p>
<button type="submit" name="submit" > Submit </button>
</div>
</form>
{% endblock%}
Я пытался добавить в представление, после if products.isValid() this:
**Product.objects.create(products.cleaned_data), но он не сохраняется под .