Django-модели Объекты ForeignKey отображают Имя поля вместо Объектных Значений

Я использую ForeignKey по имени Memberno в Моих моделях Django. После ввода данных в членском Классе это появляется в других классах как "членский объект" в 'memberno' поле. Для ForeignKey я использую 'raw_id_fields' в качестве обходного решения, но для нормальных полей и даже 'filter_horizontal', каждое значение memberno отображено как "членский объект". Я хотел бы, чтобы значения появились, как они находятся в членском классе т.е. 1, 2...

from django.db import models

# Create your models here.
class Members(models.Model):
    DESIGNATION_CHOICES=(
    ('ADM', 'Administrator'),
    ('OFF', 'Club Official'),
    ('MEM', 'Ordinary Member'),
    )
    memberno = models.AutoField(primary_key=True)
    fname = models.CharField(max_length=15)
    sname = models.CharField(max_length=15)
    onames = models.CharField(max_length=30, blank=True)
    email = models.EmailField()
    phoneNumber = models.CharField(max_length=15)
    regNo = models.CharField(max_length=15)
    designation = models.CharField(max_length=3,choices=DESIGNATION_CHOICES)
    image = models.ImageField(max_length=100,upload_to='photos/%Y/%m/%d', blank=True, null=True)
    course = models.CharField(max_length=30, blank=True, null=True)


def __unicode__(self):
    return  u'%s %s %s' % (self.fname, self.sname, self.memberno)


def get_absolute_url(self):
    return '%s%s/%s' % (settings.MEDIA_URL, settings.ATTACHMENT_FOLDER, self.id)

def get_download_url(self):
    return '%s%s/%s' % (settings.MEDIA_URL, settings.ATTACHMENT_FOLDER, self.name)




class Security(models.Model):
    memberno = models.ForeignKey(Members, unique=True)
    username = models.CharField(max_length=30, primary_key=True)
    password = models.CharField(max_length=70)

def __unicode__(self):
    return  u'%s %s %s' % (self.username, self.password, self.memberno)


class Subscriptions(models.Model):
    memberno = models.ForeignKey(Members)
    receiptNo = models.CharField(max_length=30, primary_key=True)
    type = models.CharField(max_length=50)
    date = models.DateField()
    amount = models.FloatField(max_length=99)

def __unicode__(self):
    return  u'%s %s %s' % (self.receiptno, self.type, self.memberno)




class events(models.Model):
    eventName  = models.CharField(max_length=25)
    eventID =  models.AutoField(primary_key=True)
    details = models.TextField()
    attendanceFee = models.FloatField(max_length=99)
    date = models.DateField()
    memberno = models.ManyToManyField(Members)



def __unicode__(self):
    return  u'%s %s %s' % (self.eventName, self.eventID, self.memberno)
5
задан Felix Kling 1 February 2010 в 23:43
поделиться

2 ответа

Интерфейс администратора, по-видимому, использует __ STR __ () , чтобы определить отображение модели. Я делаю это Habbit, чтобы всегда определить как __ Unicode __ () и __ 00 __ () , когда я создаю модель. Например:

class Activity(models.Model):
    activity_code = models.ForeignKey(ActivityCode)
    note = models.TextField(blank=True)
    def __str__(self):
        return "(%s) %s" % (self.activity_code.short, self.note)
    def __unicode__(self):
        return u'(%s) %s' % (self.activity_code.short, self.note)

Обновление:
Похоже, что ваш Def __unicode __ (Self) не является правильно отступлением в вашем коде. В результате это не часть вашего класса, а не используется. Отступ очень важен в Python.

4
ответ дан 14 December 2019 в 13:36
поделиться

Я не уверен, что я полностью понимаю ваш вопрос, но вы определили метод Unicode для ваших моделей?

2
ответ дан 14 December 2019 в 13:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: