Форум сайта python.su
Доброго!
Из таблицы:
CharField
ForeignKey
при выборке данных получается {id: 2, id:1, val:value} т.е вместо значения по ForeignKey из другой таблицы указана ссылка на id. Как заставить это работать, что бы было значение а не id?
Офлайн
Может часть модели выложите и какой запрос делаете?
Офлайн
sairusмодели:
Может часть модели выложите и какой запрос делаете?
class Status(models.Model):
status = models.CharField(max_length=30, verbose_name="User Status")
def __unicode__(self):
return "%s" % (self.status)
class Meta:
ordering = ["status"]
class User(models.Model):
name = models.CharField(max_length=30, verbose_name="User Names")
status = models.ForeignKey(Status)
def __unicode__(self):
return "%s" % (self.name)
class Meta:
ordering = ["name"]
test = User.objects.filter('name').values()
test = str(test)
Офлайн
mv
Не делайте values() тогда получите объекты, а не словарь со значениями полей. В словаре всегда будут только значения ключей связных объектов.
Офлайн
DaevaornЯ чего то не понимаю здесь. Когда я использую ForeignKey я имею ввиду получение данных из таблицы User заполненой через админку. Т.е ForeignKey в админке показывает выпадающий список со значениями из Status, и это относительно удобно, потому что не нужно каждый раз вбивать повторяющиеся значения для заполнения таблицы. Но при выборке, вместо значения подставленого из таблицы Status в таблицу User , там ссылки на номер строки в Status. Мне же нужно значение, и выборка происходит в коде а не в админке. Получается что ForeignKey только для админки?
Не делайте values() тогда получите объекты, а не словарь со значениями полей. В словаре всегда будут только значения ключей связных объектов.
Офлайн
mvТеперь я ничего не понимаю из того что вы тут написали:-)
Я чего то не понимаю здесь. Когда я использую ForeignKey я имею ввиду получение данных из таблицы User заполненой через админку. Т.е ForeignKey в админке показывает выпадающий список со значениями из Status, и это относительно удобно, потому что не нужно каждый раз вбивать повторяющиеся значения для заполнения таблицы. Но при выборке, вместо значения подставленого из таблицы Status в таблицу User , там ссылки на номер строки в Status. Мне же нужно значение, и выборка происходит в коде а не в админке. Получается что ForeignKey только для админки?
User.objects.filter('name').values()
for user in User.objects.all():
user.status
User.objects.all().values('name', 'status__status')
Офлайн
DaevaornДа, это моя ошибка.
? Это просто не рабочий код.
DaevaornВаш способ работает как нужно. Спасибо, проблема решилась.
User.objects.all().values('name', ‘status__status’)
Офлайн