代码之家  ›  专栏  ›  技术社区  ›  HahaMuntz

Django:向ForeignKey字段添加选项

  •  0
  • HahaMuntz  · 技术社区  · 6 年前

    choices 选择一个 ForeignKey 字段。但这会阻止输入表单得到验证。
    我不确定你能不能用 选择 在里面 字段,但您还将如何为这些选项提供可读的输出?


    如果你知道如何做到这一点,我将不胜感激。

    这是我的代码:

    模型:

    from django.contrib.auth.models import Group as DjangoGroup
    
    class Category(models.Model):
        created_by = models.ForeignKey('auth.User', on_delete=models.PROTECT, related_name='category_author')
        last_edited_by = models.ForeignKey('auth.User', on_delete=models.PROTECT, related_name='category_editor')
        name = models.CharField(max_length = 100)
        privileges = models.ForeignKey('auth.Group', on_delete=models.PROTECT, blank=True, null=True, choices=((DjangoGroup.objects.get(pk=5), 'Test group'),))
    

    表格:

    from django import forms
    from .models import *
    
    class CategoryForm(forms.ModelForm):
    
        class Meta:
            model = Category
            exclude = ('created_by', 'last_edited_by',)
    


    Select a valid choice. TestGroup(just for testing purposes) is not one of the available choices.
    “TestGroup(仅用于测试目的)”是我试图向用户隐藏的实际组名。

    我希望你能理解我要达到的目标。我是在正确的轨道上还是有不同的方法?

    提前谢谢你的回答

    0 回复  |  直到 6 年前