Ich weiß der Titel sagt, die Frage wurde zuvor gestellt, aber die Situation ist anders.Django begrenzen die Möglichkeiten einer viel zu viele Beziehung
Ich habe etwas Agent
genannt:
class Agent(models.Model):
user = models.ForeignKey(settings.AUTH_USER_MODEL, related_name='agents')
...
und ein Group
:
class Group(models.Model):
agents = models.ManyToManyField('agents.Agent', blank=True, related_name='groups')
jetzt mit Django Klasse basierte Ansichten (UpdateView vielleicht) Ich möchte eine Ansicht erstellen, dass ein Benutzer sehen nur seine Agenten und wählen Sie nur eine von ihnen zu fügen Sie es hinzu zu einer bestimmten Gruppe.
soweit ich war
@method_decorator(login_required, name='dispatch')
class GroupAgentRegister(UpdateView):
model = Group
fields = ('agents',)
template_name = 'register.html'
context_object_name = 'group'
def get_form(self, form_class=None):
form = super(GroupAgentRegister, self).get_form(form_class)
form.fields['agents'].queryset = self.request.user.agents.all()
return form
def form_valid(self, form):
if self.object.agents.filter(user=self.request.user):
form.add_error(None, ValidationError(u'Already Registered'))
return super(GroupAgentRegister, self).form_invalid(form)
return super(GroupAgentRegister, self).form_valid(form)
die Form Rendering außer in Ordnung ist, dass ich in der Lage mehrere Agenten zu wählen. , aber wenn ich einen Wert auswähle und ihn poste, ersetze er die neuen ausgewählten Agenten durch existierende und er wird nicht an die alten angehängt.
Also hat eine Gruppe nur einen Agenten? – itzMEonTV
@L_S-Nr. Eine Gruppe hat viele Agenten, aber ein Benutzer kann nur einen Agenten in jeder Gruppe registrieren. – mehdy
Wie sieht Ihr Formular aus? –