मैं वैग्टेल सीएमएस के साथ Django का उपयोग कर रहा हूं और मैंने कक्षा उपयोगकर्ता से दो प्रॉक्सी मॉडल बनाए हैं। मैं प्रॉक्सी कक्षाओं से उपयोगकर्ता निर्माण पर एक समूह जोड़ने के लिए चींटी हूं। मैंने संकेतों को जोड़ने की कोशिश की, लेकिन जाहिरा तौर पर यह खुराक प्रॉक्सी मॉडल पर काम नहीं करती है।

इसलिए सेव करने पर मैं शिक्षकों को Teachers समूह में और छात्रों को Students में जोड़ना चाहूंगा

#models.py
class User(AbstractUser):

    class Types(models.TextChoices):
        STUDENT = "STUDENT", "Student"
        TEACHER = "TEACHER", "Teacher"

    type = models.CharField(_('Type'), max_length=50, choices=Types.choices, default=Types.STUDENT)

class Student(User):
    class Meta:
        proxy: True

    def save(self, *args, **kwargs):
        if not self.pk:
            self.type = User.Types.STUDENT
        return super().save(*args, **kwargs)

class Teacher(User):
    class Meta:
        proxy: True  

    def save(self, *args, **kwargs):
        if not self.pk:
            self.type = User.Types.TEACHER
        return super().save(*args, **kwargs)

0
Filip Simin 25 पद 2020, 20:11

1 उत्तर

सबसे बढ़िया उत्तर

आप इसे save विधि के अंत में कर सकते हैं:

class Student(User):
    class Meta:
        proxy: True

    def save(self, *args, **kwargs):
        creating = not self.pk
        if creating:
            self.type = User.Types.STUDENT
        super().save(*args, **kwargs)
        if creating:
            self.groups.add(Group.objects.get(name='Students'))
1
gasman 25 पद 2020, 20:55