Inserting a foreign field in django forms -
i have model following field :
class dataset(models.model): dataset_id = models.textfield(primary_key=true) title = models.textfield(blank=true, null=true) taxonomy = models.foreignkey('organism', blank=true, null=true) citation = models.textfield(blank=true, null=true) summary = models.textfield(blank=true, null=true) contributor = models.textfield(blank=true, null=true) # field type guess. submitted = models.datefield(blank=true, null=true) last_updated = models.datefield(blank=true, null=true) author = models.foreignkey('users', db_column='author', blank=true, null=true) class meta: managed = false db_table = 'dataset' and following form , view.
class datasetform(forms.modelform): dataset_id = forms.charfield(required=true,help_text="dataset_id") title = forms.charfield(required=true,help_text="title") taxonomy = forms.integerfield(required=true,help_text="taxanomy id (ingeter)") citation = forms.charfield(required=true,help_text="citation") summary = forms.charfield(required=true,help_text="summary") contributor = forms.charfield(help_text="contributor (separated comma)") submitted = forms.datefield(initial = datetime.now,required=true,help_text="submitted date") last_updated = forms.datefield(initial = datetime.now,required=true,help_text="last updated date") author = forms.integerfield(required=true,help_text="author enter integer") class meta: model = dataset fields = ('dataset_id','title','taxonomy','citation','summary','contributor','submitted','last_updated','author') and view :
def add_dataset(request): context_dict = {} if request.method == 'post': req_dict = request.post.copy() req_dict['taxonomy'] = organism.objects.filter(taxonomy_id=request.post['taxonomy']) req_dict['author'] = users.objects.filter(id=request.post['author']) form = datasetform(req_dict) if form.is_valid(): return httpresponseredirect('/msrb/') else: print form print form.errors else: form = datasetform() context_dict['form'] = form template = get_template('msrb/add_dataset.html') context = requestcontext(request,context_dict) return httpresponse(template.render(context)) and need insert in database. now, when copy request.post different variable , try validate form, field errors foreignkey
enter whole number.
however, if dont copy request.post, not able validate form either.
i not sure how proceed it. pointers helpful
by form definition taxonomy , author intergerfield. dict copied set queryset value in form, obvious not number.
why did choose overwrite fields in modelform? want users type id of object instead of using select? because in case overwrite widgets within meta.
class datasetform(forms.modelform): class meta: model = dataset fields = ('dataset_id','title','taxonomy','citation','summary','contributor','submitted','last_updated','author') widgets = { 'taxonomy': forms.numberinput, 'author': forms.numberinput, } more info: https://docs.djangoproject.com/en/1.8/topics/forms/modelforms/#overriding-the-default-fields
Comments
Post a Comment