masoodcmpy
چهارشنبه 08 مهر 1394, 22:11 عصر
با سلام
دوستان من یه مدل دارم و یه فرم هم از روی همین مدل دارم ، ولی وقتی یه نمونه از این فرم رو میسازم و به تمپلیت میفرستم همه فیلد ها رو نشون میده به جز فیلدی که از نوع کلید خارجی هست یعنی فیلد category
کدام رو میزارم اگر تونستید کمکم کنید.
ممنونیا علی
model.py
from category.models import Category
class News(models.Model):
title = models.CharField(max_length=30,blank=False)
kholase = models.CharField(max_length=800,blank=False)
matn = models.CharField(max_length=20000,blank=False)
date_publish = models.DateField(auto_now_add=True)
time_publish = models.TimeField(auto_now_add=True)
manba = models.CharField(max_length=20,blank=False,default ='بدون منبع')
bazdid = models.IntegerField(default=0)
category = models.ForeignKey(Category,verbose_name='دسته بندی خبر')
pic = models.FileField(verbose_name='تصویر خبر',blank=True,default='news_default_pic.jpg', upload_to='news_pic')
def __unicode__(self):
return self.title
foms.py
[PHP]
class News_Insert_Form(forms.ModelForm):
now = datetime.datetime.now()
time = str(now.hour)+':'+str(now.minute)+':'+str(now.seco nd)
date = str(now.year)+'/'+str(now.month)+'/'+str(now.day)
title = forms.CharField(
max_length=30,
required=True,
label='عنوان خبر',
error_messages={'required':''})
kholase = forms.CharField(
max_length=800,
required=True,
label='خلاصه خبر',
error_messages={'required':''},
widget=forms.Textarea(attrs={'cols':50,'rows':5}))
matn = forms.CharField(
max_length=20000,
required=True,
label='متن خبر',
error_messages={'required':''},
widget=forms.Textarea(attrs={'cols':50,'rows':10}) )
date_publish = forms.DateField(
required=True,
label='تاریخ نشر خبر',
error_messages={'required':''},
initial=date)
time_publish = forms.CharField(
required=True,
label='ساعت نشر خبر',
error_messages={'required':''},
initial=time)
manba = forms.CharField(
max_length=30,
required=True,
label='منبع خبر',
error_messages={'required':''})
bazdid = forms.IntegerField(
required=True,
label='تعداد بازدید',
error_messages={'required':''},
initial=0)
category = forms.ModelChoiceField(
queryset=Category.objects.all(),
label = 'دسته بندی خبر')
pic = forms.FileField(label='تصویر خبر')
class Meta:
model = News
fields = ['title','kholase','matn','date_publish','time_publ ish','manba','bazdid','pic','category']
def clean(self):
data = super(News,self).clean()
title = data.get('title','')
kholase = data.get('kholase','')
matn = data.get('matn','')
manba = data.get('manba','')
if not title:
self.add_error('title','عنوان خبر را وارد کنید')
if not kholase:
self.add_error('kholase','خلاصه خبر را وارد کنید')
if not matn:
self.add_error('matn','متن خبر را وارد کنید')
if not manba:
self.add_error('manba','منبع خبر را وارد کنید')
return data
[php/]
views.py
[php]
class news_insert(View):
def get(self,request):
form = News_Insert_Form()
return render_to_response('news.html',{'form':form},conte xt_instance=RequestContext(request))
[php/]
دوستان من یه مدل دارم و یه فرم هم از روی همین مدل دارم ، ولی وقتی یه نمونه از این فرم رو میسازم و به تمپلیت میفرستم همه فیلد ها رو نشون میده به جز فیلدی که از نوع کلید خارجی هست یعنی فیلد category
کدام رو میزارم اگر تونستید کمکم کنید.
ممنونیا علی
model.py
from category.models import Category
class News(models.Model):
title = models.CharField(max_length=30,blank=False)
kholase = models.CharField(max_length=800,blank=False)
matn = models.CharField(max_length=20000,blank=False)
date_publish = models.DateField(auto_now_add=True)
time_publish = models.TimeField(auto_now_add=True)
manba = models.CharField(max_length=20,blank=False,default ='بدون منبع')
bazdid = models.IntegerField(default=0)
category = models.ForeignKey(Category,verbose_name='دسته بندی خبر')
pic = models.FileField(verbose_name='تصویر خبر',blank=True,default='news_default_pic.jpg', upload_to='news_pic')
def __unicode__(self):
return self.title
foms.py
[PHP]
class News_Insert_Form(forms.ModelForm):
now = datetime.datetime.now()
time = str(now.hour)+':'+str(now.minute)+':'+str(now.seco nd)
date = str(now.year)+'/'+str(now.month)+'/'+str(now.day)
title = forms.CharField(
max_length=30,
required=True,
label='عنوان خبر',
error_messages={'required':''})
kholase = forms.CharField(
max_length=800,
required=True,
label='خلاصه خبر',
error_messages={'required':''},
widget=forms.Textarea(attrs={'cols':50,'rows':5}))
matn = forms.CharField(
max_length=20000,
required=True,
label='متن خبر',
error_messages={'required':''},
widget=forms.Textarea(attrs={'cols':50,'rows':10}) )
date_publish = forms.DateField(
required=True,
label='تاریخ نشر خبر',
error_messages={'required':''},
initial=date)
time_publish = forms.CharField(
required=True,
label='ساعت نشر خبر',
error_messages={'required':''},
initial=time)
manba = forms.CharField(
max_length=30,
required=True,
label='منبع خبر',
error_messages={'required':''})
bazdid = forms.IntegerField(
required=True,
label='تعداد بازدید',
error_messages={'required':''},
initial=0)
category = forms.ModelChoiceField(
queryset=Category.objects.all(),
label = 'دسته بندی خبر')
pic = forms.FileField(label='تصویر خبر')
class Meta:
model = News
fields = ['title','kholase','matn','date_publish','time_publ ish','manba','bazdid','pic','category']
def clean(self):
data = super(News,self).clean()
title = data.get('title','')
kholase = data.get('kholase','')
matn = data.get('matn','')
manba = data.get('manba','')
if not title:
self.add_error('title','عنوان خبر را وارد کنید')
if not kholase:
self.add_error('kholase','خلاصه خبر را وارد کنید')
if not matn:
self.add_error('matn','متن خبر را وارد کنید')
if not manba:
self.add_error('manba','منبع خبر را وارد کنید')
return data
[php/]
views.py
[php]
class news_insert(View):
def get(self,request):
form = News_Insert_Form()
return render_to_response('news.html',{'form':form},conte xt_instance=RequestContext(request))
[php/]