Django - Мне нужно указать количество ценовых рядов

Так что мне нужно разместить на странице прайс-строку типа: name: medicalservice --> содержащую эти цены --->

  1. 1# --- имя --- цена --- количество
  2. 2# --- 2наименование --- 2цена --- 2количество

И я хочу разместить их на одной странице Мне нужно взять ценовые ряды, точно заявленные для этой медицинской услуги. Я не могу понять, как это сделать через админ-панель (я не знаю, как вставить в нее значение количества). Я создал промежуточную модель (services_count), но думаю, что это не лучшая идея :0


from django.db import models
from tinymce import models as tiny_models
from django.urls import reverse

class Medservices(models.Model):
    public = 'pub'
    private = 'priv'
    status_post = [(public,'public'),(private,'private')]
    position = models.IntegerField(default=1, verbose_name="Позиція")
    status = models.CharField(max_length=10,default=public,choices=status_post, verbose_name="Статус показу")
    photo = models.ImageField(verbose_name='Фото послуги або акції', upload_to='services_images', max_length=None)
    date_start = models.DateField(verbose_name='Дата початку', auto_now=False, auto_now_add=False)
    date_expire = models.DateField(verbose_name='Дата початку', auto_now=False, auto_now_add=False)
    title = models.CharField(verbose_name='Назва послуги або акції', max_length=300)
    text = text = tiny_models.HTMLField()
    slug = models.SlugField(max_length=255,unique=True,verbose_name="URL",db_index=True)
    

def __str__(self):
    return f"{self.price.all} - to {self.status}"


def get_absolute_url(self):
    return reverse('service_page', kwargs={'post_slug': self.slug})



class services_count(models.Model):
    quantity = models.IntegerField(verbose_name='Кількість цієї послуги у сервісі')
    service = models.ForeignKey("medservices.Medservices", verbose_name='Послуга або акція', on_delete=models.CASCADE)
    prices = models.ManyToManyField("price.Price", verbose_name='Ціни')

панель администратора:

from django.contrib import admin
from medservices.models import Medservices, services_count
# Register your models here.
class MedservicesAdmin(admin.ModelAdmin):
    list_filter = ('status','date_expire',)
    list_display = ('title','date_start','date_expire')
    prepopulated_fields = {"slug": ("title",)}
admin.site.register(Medservices, MedservicesAdmin)

class ServicesCountAdmin(admin.ModelAdmin):
    list_display = ('quantity',)

admin.site.register(services_count, ServicesCountAdmin)

views.py :

from django.shortcuts import render

from . import models
# Create your views here.
def services_page(request):
    services_list = models.Medservices.objects.filter(status__contains='pub').order_by('position').all()
    services_list_dict = {
        'service_rows':services_list,
        'title': 'Послуги МЦ "Сторожик"'
    }
    return render(request, 'medservices/index.html', context=services_list_dict)


def service_page(request):
    pass

Цена модели из другого приложения


from django.core import validators
from django.db import models


# Create your models here.
class Price(models.Model):
    price_all_menu = 'Загальні'
    doc_cons = 'Консультації'
    analises = 'Аналізи'
    UZD = 'УЗД'
    Urology = 'Урологія'
    Gynekology = 'Гінекологія'
    price_menu = [(price_all_menu,'Загальні'),(doc_cons,'Консультації'),(analises,'Аналізи'),(UZD, 'УЗД'), (Urology, 'Урологія'), (Gynekology, 'Гінекологія')]
    public = 'pub'
    private = 'priv'
    status_post = [(public,'public'),(private,'private')]
    code = models.CharField(max_length=10)
    name = models.CharField(max_length=300)
    price = models.CharField(max_length=40)
    position = models.IntegerField(default=1)
    status = models.CharField(max_length=10,default=public,choices=status_post)
    menu = models.CharField(max_length=100,default=price_all_menu,choices=price_menu)
    

    def __str__(self):
        return f"{self.code} -- {self.name} -- {self.price} - [{self.position}] - [{self.status}]"




Вернуться на верх