在forms.py 里怎么样动态调用Category(分类栏目)?代码贴出来了。请大家帮我看看怎么弄?

时间:2022-10-28 18:48:35
models.py:
class Category(models.Model):
    ###CATE_CHOICES =(('1', u'求职招聘'), ('2', u'征婚交友'), ('3', u'出租出售'))
    cname = models.CharField(verbose_name=u'信息分类', max_length=30)
    baseType = models.ForeignKey('self', null=True, blank=True, verbose_name=u'所属分类')

    def __unicode__(self):
        return self.cname

    class Meta:
        verbose_name = u'信息分类'
        verbose_name_plural = u'信息分类列表'
        ordering = ['cname']



forms.py:


class MsgPostForm(forms.Form):
    category = forms.ChoiceField(label=u'信息分类', choices=????问题就是这里怎么样动态的调用我在后台添加的栏目?  是定义一个CATE_CHOICES =(('1', u'求职招聘'), ('2', u'征婚交友'), ('3', u'出租出售'))
 这样的元组吗?但是这样提交不到数据库。还是用什么函数生成? 怎么样才能得到这个分类信息。而且跟后台数据库中的一样?)
    title = forms.CharField(label=u'标题', widget=forms.TextInput(attrs={'size':30, 'max_length':30}))
    content = forms.CharField(label=u'内容', widget=forms.Textarea(attrs={'size':10000}))




views.py :



@login_required
def msg_post_page(request):
    if request.method == 'POST':
        form = MsgPostForm(request.POST)
        if form.is_valid():
            newmessage = Msg(
                title = form.cleaned_data['title'],
                content = form.cleaned_data['content'],
                category = form.cleaned_data['category'],
                user = request.user,
                ip = request.META['REMOTE_ADDR'],
                dq_time = form.cleaned_data['dq_time'],
                addr_dz  = form.cleaned_data['addr_dz'],
                phone_dh = form.cleaned_data['phone_dh'],                
                qq = form.cleaned_data['qq'],
                email = form.cleaned_data['email'],
                lxr_user = form.cleaned_data['lxr_user']
                )
            newmessage.save()
            return HttpResponseRedirect('/')
    else:
        form = MsgPostForm()
        variables = RequestContext(request, {'form': form})
        return render_to_response('message/msg_post_page.html', variables)


html
{% extends "base.html" %}
{% block title %}发表留言{% endblock %}
{% block head %}发表留言{% endblock %}
{% block content %}
<form method="post" action="">
{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="发表">
</form>
{% endblock %}



问题就是forms.py 里面的:


 category = forms.ChoiceField(label=u'信息分类', choices=????问题就是这里怎么样动态的调用我在后台添加的栏目?  是定义一个CATE_CHOICES =(('1', u'求职招聘'), ('2', u'征婚交友'), ('3', u'出租出售'))


多谢

5 个解决方案

#1


搞不清你的需求,你直接就跳到最后的问题了

好像有人拿着一块生牛肉就跑来问:我做的牛肉片怎么不好吃?
也不知道怎么切,怎么烧,用了什么调料……太跳跃了

你这是用的框架么?可能我不熟悉框架,没看懂
你说的“动态”指的是什么,搞清数据源,从数据源读取就是了
如果动态指的是每次,那么就在程序前面导入数据源(import什么的)
如果是指每个时间段,就设定时器刷新读取数据源的操作

#2


是django 框架。

建了一个分类的栏目。
用户注册后。
发布信息时。需要发布到相应的栏目下面。

问题是那个发布页面的forms表单里。怎么调用那个相关的栏目?
比如要发布信息到:最新新间里。而后台建了一个最新新闻的栏目。

在发布信息的/post/页面里。怎么调用栏目?

#3


确实不懂django,具体写法你等等其他懂这个的大神

大致思路是这样的——
在表单页,载入一个数据库读取的模块,读取数据库相关信息,填入表单一个select下拉控件,每条option对应value就行。如果这些数据相对固定,例如是建数据库就设好的栏目,也可以使用一些cache方法,避免频繁的数据库IO,反正以前写php就这样

由于一些个人的原因,我很少接触大型框架,小型的模块就用不少,平常都用原始的语言代码写
因为大型框架其实已经是某种语言做好的另类“解析器”,已经有独立的语法,用于提高开发效率;偶写代码出于兴趣,不靠它吃饭,没做什么大项目,所以一直对框架没什么研究,帮不上什么忙

#4


同样感谢楼上的哥们。
再等等用过dj的朋友们

#5


已经搞定了。 
用 ModelChoiceField() 
多谢。结贴

#1


搞不清你的需求,你直接就跳到最后的问题了

好像有人拿着一块生牛肉就跑来问:我做的牛肉片怎么不好吃?
也不知道怎么切,怎么烧,用了什么调料……太跳跃了

你这是用的框架么?可能我不熟悉框架,没看懂
你说的“动态”指的是什么,搞清数据源,从数据源读取就是了
如果动态指的是每次,那么就在程序前面导入数据源(import什么的)
如果是指每个时间段,就设定时器刷新读取数据源的操作

#2


是django 框架。

建了一个分类的栏目。
用户注册后。
发布信息时。需要发布到相应的栏目下面。

问题是那个发布页面的forms表单里。怎么调用那个相关的栏目?
比如要发布信息到:最新新间里。而后台建了一个最新新闻的栏目。

在发布信息的/post/页面里。怎么调用栏目?

#3


确实不懂django,具体写法你等等其他懂这个的大神

大致思路是这样的——
在表单页,载入一个数据库读取的模块,读取数据库相关信息,填入表单一个select下拉控件,每条option对应value就行。如果这些数据相对固定,例如是建数据库就设好的栏目,也可以使用一些cache方法,避免频繁的数据库IO,反正以前写php就这样

由于一些个人的原因,我很少接触大型框架,小型的模块就用不少,平常都用原始的语言代码写
因为大型框架其实已经是某种语言做好的另类“解析器”,已经有独立的语法,用于提高开发效率;偶写代码出于兴趣,不靠它吃饭,没做什么大项目,所以一直对框架没什么研究,帮不上什么忙

#4


同样感谢楼上的哥们。
再等等用过dj的朋友们

#5


已经搞定了。 
用 ModelChoiceField() 
多谢。结贴