当前位置: 首页 > 面试题库 >

如何将ManyToManyField呈现为复选框?

沈弘文
2023-03-14
问题内容

我正在制作一个游戏链接网站,用户可以在其中发布指向自己喜欢的网络游戏的链接。人们发布游戏时,应该检查游戏属于哪一类。我决定允许每个游戏包含多个类别,因为某些游戏可以分为多个类别。所以问题是,我该如何处理呢?以及如何将其显示为“复选框”,其中必须选中至少一个?以及如何在“管理”中将其显示为复选框?

这是代码

楷模:

class Category(models.Model): 
        category = models.CharField(max_length=200) 
        def __unicode__(self): 
                return self.category 
class Game(models.Model): 
    name = models.CharField(max_length=200) 
    url = models.CharField(max_length=200) 
    poster = models.ForeignKey(User, related_name='game_poster_set') 
    postdate = models.DateTimeField(default=datetime.now) 
    cats = models.ManyToManyField(Category) 
    hits = models.IntegerField(default=0) 
    post = models.BooleanField(default=False)

观看次数:

def submit(request): 
        form = GameForm(request.POST or None) 
        if form.is_valid(): 
                game = form.save(commit=False) 
                game.poster = request.user 
                game.save() 
                next = reverse('gamesite.games.views.favorites') 
                return HttpResponseRedirect(next) 
        return render_to_response( 
        'games/submit.html', 
        {'form': form}, 
        context_instance = RequestContext(request),)

形式:

class GameForm(forms.ModelForm): 
        name = forms.CharField(max_length=15, label='Name') 
        url = forms.URLField(label='URL', initial='http://') 
        class Meta: 
                model = Game 
                fields = ('name','url')

谢谢!


问题答案:
class GameForm(forms.ModelForm): 
        name = forms.CharField(max_length=15, label='Name') 
        url = forms.URLField(label='URL', initial='http://') 
        cats = forms.ModelMultipleChoiceField(
            queryset=Category.objects.all(),
            widget=forms.CheckboxSelectMultiple,
            required=True)

        class Meta: 
                model = Game 
                fields = ('name','url','cats')

那应该可以解决您的观点,但是我不确定管理员。仍在寻找…如果我发现任何东西,将进行编辑。



 类似资料:
  • 我有一个简单的组件: 这样称呼它: 但它没有说: JSX元素类型“Header”没有任何构造或调用签名 我该怎么解决这个问题?我需要把它渲染成

  • 当选择某些文本时,PhpStom 2019似乎具有功能,例如通过某些操作将此文本呈现为“ShowDemailedMapComponentRe的限制”或“显示详细的地图组件限制”如何为选定的文本/代码触发此功能?谢谢!

  • 我的问题很难解释,但我希望我能描述得足够好,让它有意义。基本上,我有一个保存员工数据的表单,表单中有一个部分保存员工的第二个电话号码。我有两个下拉列表旁边的这一点,指定时间,第二个号码是可用的联系原因。完成后,我将表单保存到sql数据库中。我不确定这是否可行,但当我从应用程序中调出此员工数据时,我希望使用以前的当前值选择下拉列表。现在我不确定使用select是否是最好的方法,或者我是否应该用另一种

  • 问题内容: 我使用“消息”界面将消息传递给用户,如下所示: 我想在变量中包含html 并呈现它,而不在模板中转义标记。 问题答案: 如果你不想转义HTML,请查看过滤器和标签: safe: autoescape:

  • 我有一个react原生表单,它有一个按钮,可以根据用户的信息自动填充一些字段。关键是,即使我更新了与一个TextInput相关的状态变量,TextInput也不会显示这样的数据。为了简单起见,这里有一个简短的片段 按照这个示例,如果我单击“AutoCompile”,下面的TextInput将不会显示新值,即使状态变量将被更新。我的问题是,我如何从外部更新一个TextInput显示的值而不输入?

  • 问题内容: 我正在使用Node.js的Forms库(Forms),它将在后端为我呈现一个表单: 最后一行创建一个HTML块,如下所示: 基本上只是一长串HTML。然后,我尝试使用EJS和Express通过以下代码进行渲染: 但是在渲染HTML时,只是我上面发布的字符串,而不是实际的HTML(因此是我想要的一种形式)。有什么方法可以使用EJS将字符串呈现为实际的HTML?还是我必须使用类似Jade的