Использовал Джанго 1.9. У меня есть две модели, связанные между собой, один содержит один пойдите и имя между другими признаками и другой содержит Вашего собственного пойдите вместе с id первой модели:
class Televisor(models.Model):
idTelevisor = models.AutoField(primary_key=True)
marca = models.CharField(max_length=45, null=False)
modelo = models.CharField(max_length=45, null=False)
...
class Falla(model.Models):
idFalla = models.AutoField(primary_key=True)
idTelevisor = ForeignKey(Televisor)
...
Однако, в admin django я хотел бы, чтобы для второй модели, имена объектов вышли используя признаки, содержавшие в первой модели. Вещь, которая я была невозможна реализовывать с синтаксисом, который я опишу после, так как у меня выходит ошибка ObjectHasNoAttribute.
В этом случае, каков синтаксис? Например, у меня есть эта синтаксис, но который вызывает ошибки, из-за того, что признаки не существуют во второй модели:
def __unicode__(self):
return '{} {} {}'.format(self.televisor.Marca, self.televisor.Modelo, self.televisor.VarianteModelo)
Привет и спасибо заранее
В конце концов не было необходимо описывать asГ - признаки, которые querГ, - которому покажут как имя в admin Джанго, sГіlo было достаточно размещать id, что оказывалась ForeignKey:
class Falla(models.Model):
...
def __unicode__(self):
return '{}'.format(self.idTelevisor)
Я это не понимаю очень хорошо в id, но podrГ-эксперт связывать модели следующей формы, такой данности как пример:
class Author(models.Model):
first_name = models.CharField(max_length=30)
last_name = models.CharField(max_length=30)
def __unicode__():
return '{} {}'.format(self.first_name, self.last_name)
class Gender(models.Model):
author = models.ForeignKey(Author)
book = models.CharField(max_length=30)
def __unicode__():
return '{}'.format(self.book)
Потом изменять модуль admin.py для aГ±adir в твой интерфейс administraciГіn.
from django.contrib import admin
from .models import Register, User, Author, Gender
# Register your models here.
admin.site.register(Register)
admin.site.register(User)
admin.site.register(Author)
admin.site.register(Gender)
Я думаю, что с этим ты можешь связывать модель 1 с моделью 2, и можешь проверять в твоем интерфейсе администратора, как создается она relaciГіn, наполнив поля.
В действительности ты не нуждаешься в том, чтобы определить таким образом твой первичный ключ, так как Джанго делает точно автоматическую форму. А именно, ты можешь препятствовать первому полю:
class Televisor(models.Model):
marca = models.CharField(max_length=45, null=False)
modelo = models.CharField(max_length=45, null=False)
...
С другой стороны, ошибка, о которой ты упоминаешь, проистекает того, что в твоей модели у тебя нет никакого названного поля televisor
. Правильное имя, как уже ты открыл, он idTelevisor
.
В конце концов, путеводитель стиля Джанго рекомендует, чтобы ты использовал только мелкие в именах твоих полей, из-за которого модель Falla
это оказалось бы так:
class Falla(model.Models):
televisor = ForeignKey(Televisor)
...