Как привязать inline к определенному slug?
Всех приветствую) Нужна помощь коллективного разума. При использование Inline в admin.py появляется дополнительный шаблон в Админ-панели. Я использую slug для формирования страниц и после заполнения inline на любой странице появляются заполненные все inline со всех страниц в любом шаблоне где прописан тег. Как привязать эти inline к определенному slug? Через фильтры? Через def в views или models? В документации не могу найти такую привязку.
models.py
class Transfers(TranslatableModel):
translations = TranslatedFields(
title=models.CharField(max_length=255, verbose_name='Заголовок'),
title_SEO=models.CharField(
max_length=255, blank=True, verbose_name='Заголовок для SEO'),
description=models.CharField(
max_length=200, blank=True, verbose_name='Description для SEO'),
title_h1=models.CharField(
max_length=255, blank=True, verbose_name='Заголовок H1 (Marketing)'),
title_h2=models.CharField(
max_length=255, blank=True, verbose_name='Заголовок H2 (Marketing)'),
note_class_car=models.CharField(
max_length=5000, null=True, blank=True, verbose_name='Примечание'),
)
slug = models.SlugField(max_length=255, unique=True, db_index=True, verbose_name='URL')
choose_RegionsAirports = models.ForeignKey(RegionsAirports, on_delete=models.PROTECT, null=True)
def get_absolute_url(self):
return reverse('transfers:transfers_detail', kwargs={'transfers_slug': self.slug})
def __str__(self):
return self.translations
def __str__(self):
return str(self.title)
class TransfersClass(models.Model):
title_choose_class = models.ForeignKey(
Transfers, on_delete=models.PROTECT, null=True)
choose_class = models.ForeignKey(
Class_car, on_delete=models.PROTECT, null=True)
options_class_car = models.ForeignKey(
Description_class, on_delete=models.PROTECT, null=True, verbose_name='Автомобили данного класса')
choose_Currency = models.ForeignKey(
Currency, on_delete=models.PROTECT, null=True, verbose_name='Валюта')
price_car = models.DecimalField(
max_digits=8, decimal_places=2, verbose_name='Стоимость')
сommission_car = models.DecimalField(
max_digits=5, decimal_places=2, null=True, verbose_name='Комиссия в %')
passengers_car = models.CharField(
max_length=3, verbose_name='Пассажиры')
baggage_car = models.CharField(
max_length=3, verbose_name='Багаж')
is_published = models.BooleanField(
default=True, verbose_name='Публикация')
photo_car = models.ForeignKey(
Gallery_car, on_delete=models.PROTECT, null=True)
def __str__(self):
return str(self.choose_class)
@property
def total_price(self):
return int((self.price_car / 100) * self.сommission_car) + self.price_car
admin.py
class TransfersClassInline(admin.StackedInline):
fields = ('choose_class', 'options_class_car', ('passengers_car', 'baggage_car'),
'photo_car', ('choose_Currency', 'price_car', 'сommission_car'))
model = TransfersClass
extra = 0
class TransfersAdmin(TranslatableAdmin):
inlines = [TransfersClassInline]
fields = (('title', 'slug'), 'title_SEO', 'description',
'title_h1', 'title_h2', 'choose_RegionsAirports', 'note_class_car')
list_display = ('id', 'title', 'choose_RegionsAirports', 'slug')
list_display_links = ('id', 'title')
def get_prepopulated_fields(self, request, obj=None):
return {
'slug': ('title',)
}
admin.site.register(Transfers, TransfersAdmin)
views.py
class TransfersClassOrder(ListView):
model = TransfersClass
template_name = 'transfers/transfers.html'
context_object_name = 'tb'
allow_empty = False
def transfers_detail(request, transfers_slug):
tb = get_object_or_404(TransfersClass, slug=transfers_slug)
transfers = Transfers.objects.all()
context = {
'choose_class': tb.choose_class,
'options_class_car': tb.options_class_car,
'price_car': tb.price_car,
'сommission_car': tb.сommission_car,
'passengers_car': tb.passengers_car,
'baggage_car': tb.baggage_car,
'photo_car': tb.photo_car,
}
return render(request, 'transfers/transfers.html', context=context)
