Как отобразить данные обратного отношения в Django с уникальным заголовком?
У меня есть 2 модели, и я хочу отобразить данные на моем шаблоне, но в настоящее время они отражаются в другом приложении. Я создал динамический заголовок и он отлично работает в реальном времени, но он конфликтует с другими приложениями. Не могли бы вы мне помочь?
Я хочу отобразить данные по ListingTech моделям, а ListingTech модели имеют несколько данных Listing, поэтому они должны отображаться под слогом модели ListingTech. Модель ListingTech имеет несколько Listing, поэтому title and description должна отображаться ListingTech.
Все работает нормально с текущим кодом файла views.py, но он выдает ошибку всякий раз, когда я пытаюсь получить доступ к URL другого приложения (Ошибка: The view company.views.company_list didn't return an HttpResponse object. It returned None instead.).
Пожалуйста, решите эту проблему, ваша помощь будет оценена по достоинству.
Вот мой models.py файл...
class ListingTech(models.Model):
city = models.ForeignKey(City, default=None, related_name="ListTechCity", on_delete=models.CASCADE, help_text=f"Value: Select City")
name = models.CharField(max_length=60, default=None, help_text=f'Type: String, Values: Enter Company Name')
slug= models.SlugField(max_length=60, unique=True, help_text=f'Type: String, Values: Enter Slug')
title = models.CharField(max_length=100, null=True, blank=True, verbose_name="Meta Title", help_text=f"Values: Enter ListingTech Title.")
description = models.TextField(max_length=200, verbose_name="Meta Description", null=True, blank=True, help_text=f'Values: Enter ListingTech Meta Description.')
listing_img = models.ImageField(upload_to="listing-image", default=None, help_text=f"Enter Listing Image", verbose_name="Upload Image")
overview=RichTextField(null=True,
blank=True,
verbose_name='Listing Overview',
help_text=f"Values: Enter Listing Overview")
вот другая модель
class Listing(models.Model):
city = models.ForeignKey(City,
verbose_name="Select City",
related_name='ListingCIty', null=True, blank=True, on_delete=models.CASCADE, help_text=f"Values: Select Company City")
listing_technology = models.ForeignKey(ListingTech,
verbose_name="Select Listing For",
related_name='ListingTechnology', on_delete=models.CASCADE, help_text=f"Values: Select Company Technology")
company = models.ForeignKey(Company,
verbose_name="Select Company",
related_name='ListingCompany', on_delete=models.CASCADE, help_text=f"Values: Select Company")
company_url = models.URLField(max_length=256, null=True, blank=True, verbose_name="Company Page URL", help_text=f"Values: Enter Company Page URL")
listing_overview = models.TextField(max_length=1500, null=True, blank=True, help_text=f'Values: Enter Listing Page Overview.')
вот мой urls.py файл...
re_path(r'^(?P<city_slug>[\w\-]+)/(?P<slug>[\w\-]+)', views.company_list, name="company_list"),
вот мой views.py файл...
def company_list(request, city_slug, slug):
comp_list = Listing.objects.filter(listing_technology__city__slug = city_slug, listing_technology__slug=slug).select_related('company','listing_technology').order_by('-boosted_price')
for item in comp_list:
if item.listing_technology.title and item.listing_technology.description != '':
title= item.listing_technology.title
description = item.listing_technology.description
template_name = 'company/list.html'
context = {'comp_list':comp_list, 'title':title, 'description':description}
return render(request, template_name, context)
else:
this_year = str(datetime.now().year)
this_month = datetime.strftime(datetime.now(), '%B')
proj_prop = list(map(lambda x:"Top" + " " + x.listing_technology.name + " " + this_month + " " + this_year, comp_list))
title = "".join(proj_prop[0])
prop_desc = list(map(lambda x:x.listing_technology.city.city_name + " " +"Based Top" + " " + x.listing_technology.name + ". " + "Are you looking for the top" + " " + x.listing_technology.name + "" +", Here is the list of top" + " " + x.listing_technology.name, comp_list))
description = "".join(prop_desc[0])
template_name = 'company/list.html'
context = {'comp_list':comp_list, 'title':title, 'description':description}
return render(request, template_name, context)