Я пытаюсь отобразить данные из одной из моих моделей в DetailView, используя связанное имя, определенное в модели. Это работает для модели Аренда недвижимости, но не работает для модели контракта. В чем может быть проблема?
Небольшой контекст того, чего я пытаюсь достичь. Чтобы получить значение атрибута модели аренды, я использую для l oop на landlord.rentalproperty.all; аренда недвижимости была родственным названием для модели арендодателя. Это отлично работает.
Когда у меня возникает проблема, когда я использую имя, связанное с моделью контракта, для rentalproperty, это не работает. Как я могу это исправить? Спасибо.
моя модель:
UserModel = get_user_model()
class Landlord(models.Model):
user = models.OneToOneField(UserModel, on_delete=models.CASCADE)
address = models.CharField(max_length=255)
def __str__(self):
return str(self.address)
class RentalProperty(models.Model):
landlord = models.ForeignKey("Landlord", related_name='rentalproperty', on_delete=models.CASCADE)
created_by = models.ForeignKey(UserModel, related_name='rentalproperty', on_delete=models.CASCADE)
PROPERTY_LISTING_CHOICES = Choices(
('APARTMENT', _('Apartment')),
('HOLIDAY_HOME', _('Holiday home')),
('SINGLE_FAMILY_HOME', _('Single family home')),
('COMMERCIAL', _('Commercial')),
)
type_of_property_listing = models.CharField(
max_length = 50,
choices = PROPERTY_LISTING_CHOICES,
default = PROPERTY_LISTING_CHOICES.APARTMENT,)
street = models.CharField(max_length=255)
borough = models.CharField(max_length=255)
def __str__(self):
return str(self.type_of_property_listing)
class Contract(models.Model):
rentalproperty = models.ForeignKey("RentalProperty", related_name='contracts', on_delete=models.CASCADE)
insurance_required = models.BooleanField(default=True)
other_terms = models.TextField(blank=True)
def __str__(self):
return str(self.insurance_required)
Моя html:
<h1>This is the detail view</h1>
<h3>From landlord</h3>
<p>Address: {{landlord.address}}</p>
<h3>From Rental property</h3>
<ul>
{% for rental in landlord.rentalproperty.all %}
<li>landlord: {{rental.landlord}}</li>
<li>createdby: {{rental.created_by}}</li>
<li>Type of property: {{rental.type_of_property_listing}}</li>
<li>Street: {{rental.street}}</li>
<li>Borough: {{rental.borough}}</li>
{% endfor %}
</ul>
<ul>
{% for contract in rentalproperty.contracts.all %}
<li> rental property: {{contract.rentalproperty}}</li>
{% endfor %}
</ul>
Моя информация Просмотр.
class DetailView(generic.DetailView):
model = Landlord
template_name = 'rental/detail.html'