I have created a model Agent that is in a OneToOne relation with the User model. I managed to create a form where I can edit the Agent(user) details, but I would like to populate the form with the existing details of the model(Agent/user). Found something similar here but it is not using Class based views.
models.py ->
from django.contrib.auth.models import AbstractUser
class User(AbstractUser):
is_organisor = models.BooleanField(default=True)
is_agent = models.BooleanField(default=False)
class Agent(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
organisation = models.ForeignKey(UserProfile, on_delete=models.CASCADE)
def __str__(self):
return self.user.email
forms.py ->
from django import forms
from django.contrib.auth import get_user_model
User = get_user_model()
class AgentModelForm(forms.ModelForm):
class Meta:
model = User
fields = (
'email',
'username',
'first_name',
'last_name'
)
views.py ->
class AgentUpdateView(OrganisorAndLoginRequiredMixin,generic.UpdateView):
template_name = "agents/agent_update.html"
form_class = AgentModelForm
queryset = Agent.objects.all()
def get_success_url(self):
return reverse("agents:agent_list")