Изменить и ограничить выбор поля ForeignKey в форме

Я пытаюсь контролировать выбор ForeignKey в форме.
Я хочу иметь возможность контролировать отображаемое имя в форме и какие параметры доступны.
Мне удалось ограничить выбор, но я не могу понять, как изменить отображаемое имя:

Модель:

from django.db import models

# Create your models here.

class Group(models.Model):
    created_by = models.ForeignKey('auth.User', on_delete=models.PROTECT, related_name='group_author')
    last_edited_by = models.ForeignKey('auth.User', on_delete=models.PROTECT, related_name='group_editor')
    name_de = models.CharField(max_length = 100, unique=True)
    name_en = models.CharField(max_length = 100, unique=True)
    privacy = models.ForeignKey('auth.Group', on_delete=models.PROTECT, blank=True, null=True)

    def __str__(self):
        return str(self.name_de) + '/' + (self.name_en)

Форма:

from django import forms
from .models import *

class GroupForm(forms.ModelForm):

    class Meta:
        model = Group
        exclude = ('created_by', 'last_edited_by',)

Вид:

from django.contrib.auth.models import Group as DjangoGroup
from django.db.models import Q
from django.shortcuts import render
from .forms import *
from .models import *

def category_new(request):
context = {}
if request.method == 'POST':
    form = GroupForm(request.POST)
    if form.is_valid():
        group = form.save(commit=False)
        group.created_by = request.user
        group.last_edited_by = request.user
        group.save()
        return redirect('index')
    else:
        context['form'] = form
else:
    form = GroupForm()
    privacyOptions = DjangoGroup.objects.filter(Q(name='Privacy - Private') | Q(name='Privacy - Submods'))
    form.fields['privacy'].queryset = privacyOptions
    context['form'] = form
return render(request, 'new_category.html', context)

Теперь это работает так, что отображаемые формы отображают только две группы, которые я хочу, чтобы они отображались, но я бы хотел, чтобы они отображались просто как "Личные" и "Только подмодели".

Пожалуйста, дайте мне знать, если нужна дополнительная информация.
Заранее спасибо за любую помощь или предложения.

0 ответов

Другие вопросы по тегам