Как получить подмножество %s_%s_changelist
Следующий код работает правильно:
У меня есть модели(.../models.py):
Водная точка
class Pagua(models.Model):
idpg = models.CharField(primary_key=True, max_length=255,)
observaciones =
models.CharField(verbose_name='Observaciones',max_length=200,blank=True,null=True)
class Meta:
managed = False
db_table = 'pagua'
verbose_name = "Punto de agua"
verbose_name_plural = "Puntos de agua"
def __str__(self):
return str(self.idpg)
Точка поверхностной воды (наследуется от класса Pagua)
class Pasup(Pagua):
num_p = models.CharField(verbose_name='Número punto',max_length=50)
tipo_pg = models.CharField(verbose_name='Tipo',max_length=200,
default='Superficial')
denominacion = models.CharField(verbose_name='Denominación',max_length=200, blank=True, null=True)
cota = models.FloatField(verbose_name='Cota [m.s.n.m]',blank=True, null=True)
latitud = models.FloatField(verbose_name='Latitud [decimal]',blank=True, null=True)
longitud = models.FloatField(verbose_name='Longitud [decimal]',blank=True, null=True)
geom = models.PointField(blank=True, null=True,srid=4326)
class Meta:
managed = False
db_table = 'pasup'
verbose_name = "Punto de agua superficial"
verbose_name_plural = "Puntos de agua superficiales"
def __str__(self):
return str(self.pagua_ptr_id)
Химические данные:
class Dquimicos(models.Model):
analisisnum = models.IntegerField(primary_key=True)
idpg = models.ForeignKey('registrar_p.Pagua', models.CASCADE, db_column='idpg')
tipoanalisis = models.CharField(verbose_name='Tipo análisis',max_length=200, blank=True, null=True)
fecha = models.DateField(verbose_name='Fecha',blank=True, null=True)
class Meta:
managed = False
db_table = 'dquimicos_0'
verbose_name = "Datos químicos (encabezado)"
verbose_name_plural = "Datos químicos (encabezados)"
def __str__(self):
return str(self.analisisnum)
Виды (.../views.py):
В этом представлении показан список изменений со ВСЕМИ химическими записями:
def verdquimicos(request):
myapplabel = Dquimicos._meta.app_label
mymodelname = Dquimicos._meta.model_name
infodata = myapplabel+'_'+mymodelname
return HttpResponseRedirect(reverse("admin:%s_changelist" % infodata))
Это представление получает параметр pk и отображает страницу ИЗМЕНЕНИЕ для точки водоснабжения, idpg которой = pk def verpagua(request,pk):
myapplabel = Pagua._meta.app_label
mymodelname = Pagua._meta.model_name
infodata = myapplabel+'_'+mymodelname
return HttpResponseRedirect(reverse("admin:%s_change" % (infodata),None,(pk,),))
Урлы (urls.py):
urlpatterns = [
path('dquimicos/',verdquimicos, name='verdquimicos'),
path('pagua/<str:pk>',verpagua, name='verpagua'),
]
Проблемы:
Один: Мне нужно, чтобы на странице списка изменений отображались только записи с химическими данными из конкретного пункта водоснабжения идентификатор которого передается параметром.
Два: Мне нужно, чтобы на странице списка изменений отображались только записи с конкретной точкой воды чей id передается параметром.
Например Это не работает:
def verpagua(request,pk):
myapplabel = Pagua._meta.app_label
mymodelname = Pagua._meta.model_name
infodata = myapplabel+'_'+mymodelname
return HttpResponseRedirect(reverse("admin:%s_changelist" % (infodata),None,(pk,),)) }