Mam kilka modeli i próbuję filtrować kandydatów w formularzu PositionUpdate na podstawie kandydatów, którzy aplikowali na to stanowisko.

class Position(models.Model):
    title = models.CharField(max_length=128,verbose_name='Title')
    candidate = models.ForeignKey('careers.Applicant',
    on_delete=models.SET_NULL,
    related_name='candidate',
    blank=True,
    null=True
)

class Applicant(models.Model):
    first_name = models.CharField(max_length=128,blank=False,verbose_name="First Name")
    position = models.ManyToManyField(Position,related_name='applicants',
                                blank=True)

Dziękuję Ci

0
K. Jones 20 grudzień 2019, 02:16

1 odpowiedź

# In general, if you want filter foreign key items

Position.objects.filter(candidate__position='your value')


# For your form, you can queryset attribute of your model field

class PositionUpdateForm(forms.ModelForm):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.fields['candidate'].queryset = Position.objects.filter(candidate__position='your value')
0
Mukul Kumar 20 grudzień 2019, 05:54
Dziękuję Ci. Jak mogę po prostu wybrać „kandydata” spośród nie wszystkich kandydatów, ale tylko tych, którzy aplikowali na to stanowisko?
 – 
K. Jones
20 grudzień 2019, 06:36