В связи с тем, то много наименований в таблицах может дублироваться, я повыносил их в отдельные таблицы и создал m2m связи. ObjectInfo имеет o2m связь с ActionInfo, который в свою очередь имеет m2m связь с ActionName и еще десятком других. Суть в том, то o2m связь работает, а m2m при попытке получить атрибут name выдает None, тоже самое по всех остальных таблицах с m2m связью.
class ObjectInfo(models.Model):
name = models.CharField(max_length=100)
prof = models.ForeignKey(qProfile, related_name = "objectProfile", on_delete=models.CASCADE, null=True, blank=True)
photo = models.CharField(max_length=100, null=True)
def __str__(self):
return '%s' % (self.name)
#-------------------------------------------------------
class ActionInfo(models.Model):
discription = models.CharField(max_length=1000) # Описание
photo = models.CharField(max_length=300, null=True) # Фото
aprof = models.ForeignKey(ObjectInfo, related_name = "actionInfo", on_delete=models.CASCADE, null=True, blank=True) # Ссылка на услугу
def __str__(self):
return self.discription
#-----------------------------------------------------------------
class ActionName(models.Model):
name = models.CharField(max_length=300) # Название услуги (блюда)
aserv = models.ManyToManyField(ActionInfo, related_name = "actionName", null=True, blank=True) # Ссылка на услуги
def __str__(self):
return self.name
def show(request, rest_id):
args = {}
args['user'] = auth.get_user(request)
args['lisofsd'] = ObjectInfo.objects.get(pk = rest_id)
args['type'] = args['lisofsd'].actionTypeObject.all()
args['lisofsd'] = args['lisofsd'].actionInfo.all()
print(args['lisofsd'])
for i in args['lisofsd'][:5]:
print(i.actionName.name)
for j in i.actionPrice.all():
print("price="+str(j.price))