2013-07-12 3 views
0

У меня есть таблица, в которой company_imagesпринадлежат к country_master кроме случаев, когда country_id является . Если country_id равно 0, я предполагаю, что это «все местоположения». Но так как 0 не существует в country_master. Он не возвращает результат для этих записей в списке company_images. Как это исправить.Джанго админ недостающих записей

Простите меня, если это простая вещь, потому что я новичок в python/django.

Model.py

class CountryMaster(models.Model): 
    country_id = models.IntegerField(primary_key=True) 
    country_name = models.CharField(max_length=255) 
    created_date = models.DateTimeField(auto_now_add=True) 
    updated_date = models.DateTimeField(auto_now=True) 

    class Meta: 
     db_table = "country_master" 

    def __unicode__(self): 
     if self.country_name is None: 
      return "None" 
     else: 
      return self.country_name 


class CompanyImage(models.Model): 
    image_url = models.ImageField(upload_to='company', max_length=255) 
    country = models.ForeignKey(CountryMaster) 
    created_date = models.DateTimeField(auto_now_add=True) 
    updated_date = models.DateTimeField(auto_now=True) 

class Meta: 
    db_table = "company_images" 

def __unicode__(self): 
    return "None" 

Я попытался это и упоминание об этом admin.py как дисплей подал

def country_name(self): 
    if self.country_id is 0: 
     return "ALL" 
    else: 
     return self.country 
country_name.short_description = 'Country' 
+0

Одна работа вокруг - сделать 'country' нулевым (' null = True, blank = True'), и если пусто, предположите __all__ местоположения. Это, на мой взгляд, было бы чище. Другой вариант. Имейте специальное значение - 'country_master.name = 'all'' и присвойте __all__ случаю этому объекту – karthikr

+0

это работает для меня. PLZ поставить это как ответ. так что я могу отметить его как правильный ответ. – aWebDeveloper

+0

также не могли бы вы подробно объяснить вариант b. я не получил его – aWebDeveloper

ответ

0

Одна работа вокруг, сделать country поле Nullable (null=True, blank=True) и если пусто, предположим, all мест. Это, на мой взгляд, было бы чище.

Другой подход должен был бы создать CountryMaster объект (как приспособление) для опции all - Другими словами, арматуре, который загружает в базу данных, CountryMaster объект name=all. Таким образом, всякий раз, когда пользователь выбирает all, вы можете назначить ссылку на этот объект.

+0

Я хотел бы знать, как я могу добавить дополнительные записи в раскрывающийся список в форме добавления. – aWebDeveloper

+0

[См. Это] (http://stackoverflow.com/questions/3700445/add-additional-options-to-django-form-select-widget) – karthikr

Смежные вопросы