Django - Мне нужно указать количество ценовых рядов
Так что мне нужно разместить на странице прайс-строку типа: name: medicalservice --> содержащую эти цены --->
- 1# --- имя --- цена --- количество
- 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}]"