python - Updating fields of model using forms and views on Django 1.7 -
in models.py product model is
class product(models.model): productname = models.charfield(max_length=20, default='1',blank=false,null=false, primary_key = true) userphone = models.charfield(max_length=20, default='1') userid = models.foreignkey(account, default='1',null=true) productdesc = models.textfield(blank=false,null=false, default='1') productcategory = models.foreignkey(category, null=false, default='1') productprice = models.decimalfield(default='0',blank=false,null=false, max_digits=6, decimal_places=2) picture = models.imagefield(upload_to='product_images', blank=true, null=true, default='1') def __unicode__(self): return self.productname
the form have add new products is,
class productform(forms.modelform): productname = forms.charfield(label='product name') productcategory = forms.modelchoicefield(label='category', queryset=category.objects.all()) productdesc = forms.charfield(label='product description', widget=forms.textarea) productprice = forms.decimalfield(label='expected price') userphone = forms.charfield(label='phone number') picture = forms.imagefield(label='upload picture') class meta: model = product fields = ('productname', 'productcategory', 'productdesc', 'productprice', 'userphone', 'picture',) def clean_productname(self): productname = self.cleaned_data['productname'] try: product.objects.get(productname=productname) except product.doesnotexist: return productname raise forms.validationerror("a product under name exits. rename product.") def clean_productcategory(self): productcategory = self.cleaned_data['productcategory'] def clean_productdesc(self): productdesc = self.cleaned_data['productdesc'] def clean_productprice(self): productprice = self.cleaned_data['productprice'] def clean_userphone(self): userphone = self.cleaned_data['userphone'] def clean_picture(self): picture = self.cleaned_data['picture']
and take form input, have in views.py file
@login_required(login_url='/accounts/login/') def newproduct(request): if(request.method =='post'): product_form = productform(request.post, request.files) if product_form.is_valid(): product = product_form.save(commit=true) product.save() else: print product_form.errors else: product_form = productform() return render(request, 'market/postad.html', {'product_form':product_form} )
i want update userid field of product model user_id of logged in user. how go doing that?
request.user.id
might give me id of logged in user. how associate product being entered database? (i using mysql database)
my auth_user_model isn't configured account. there way without configuring it?
my account model is
class account(models.model): user = models.onetoonefield(user)
i imported user django.contrib.auth.models
in views.py (if auth_user_model configured account)
@login_required(login_url='/accounts/login/', template_name='market/postad.html') def newproduct(request): product_form = productform(request.post or none, request.files or none) if(request.method =='post'): if product_form.is_valid(): product = product_form.save(commit=false) product.userid = account.objects.get_or_create(user=request.user) product.save() else: print product_form.errors return render(request, template_name, {'product_form':product_form} )
Comments
Post a Comment