How can i enable the agent instance to be available in my agent update form when the agent is connected to the user through a one to one field

Viewed 22

models.py

class Auto(models.Model):
    user = models.OneToOneField("User", on_delete=models.CASCADE)

    def __str__(self):
        return self.user.username

class User(AbstractUser):
    pass
    # To categorize users either as an organisor or as an agent
    is_organisor = models.BooleanField(default=True)
    is_agent = models.BooleanField(default=False)
    agent_details = models.TextField(null = True, blank=True)

class Agent(models.Model):
    user = models.OneToOneField("User", on_delete=models.CASCADE)
    organisation = models.ForeignKey("Auto", on_delete=models.CASCADE)
    def __str__(self):
        return self.user.username

views.py

class Agent_update(ManualLoginRequiredMixin, generic.UpdateView):
    template_name = 'agent-update.html'
    form_class = AgentUpdateForm
    queryset = Agent.objects.all()
    context_object_name = 'agents'

    def get_success_url(self):
        return reverse('reverse url')

agent-update.html

<form method="post">
    {% csrf_token %}
    {{form|crispy}}
        <button>Update Agent</button>
</form>

forms.py

class AgentUpdateForm(forms.ModelForm):
    class Meta:
        model = get_user_model()
        fields = (
            'username',
            'first_name',
            'last_name',
            'email',
            'agent_details',
            )

After running the server the form works but dosen't display the instance of the particular agent being updated.

I feel it is because the Agent model is connected to the User model. Any help would be appreciated

0 Answers
Related