Найти - Пользователи
Полная версия: @property у модели
Начало » Django » @property у модели
1
scurramalum
Добрый день
Прошу помощи в реализации, или поиска решения по данному вопросу.

Есть модель, допустим:
class MyModel(model.Model):
    article = model.CharField(....)
    name = model.CharField()

Необходимо, чтобы в админке появилось еще свойство “количество”, которое будет подгружаться из другой базы (точнее даже будет являться результатом вызова SQL функции).

сделал подобным образом:
......
    @property
    def qty(self):
        from myfile import myfunction #импортирую функцию Python, в которой идет вызов прямой SQL функции
        return myfunction(self.article)

пока все работает. Я даже при добавлении в админку могу добавить это поле. Но есть пара ньюансов, которые я не могу решать:
1 - как изменить наименование колонки в админской части (сейчас оно отображается как и наименовании свойства - “qty”
2 - мне необходимо реализовать фильтр по этому полю, то есть когда я вызываю MyModel.objects.filter(qty=1), он выдает ошибку, по которой я понимаю, что данного поля нет в БД (оно и понятно), но как реализовать подобную возможность?


И еще 1 вопрос:
Как в админке, при открытии заходе на страницу представления этой модели, выводить какое то сообщение?

Заранее спасибо.
botinag
1. short_description
2. по-простому - никак. Смотрите в сторону extra
3. видимо стоит гуглить в сторону messages

— upd —
в 1 пункте стоит отметить, что short_description “не дружит” с декоратором, поэтому придется вносить изменения в код например как здесь.
scurramalum
botinag
1. short_description2. по-простому - никак. Смотрите в сторону extra3. видимо стоит гуглить в сторону messages— upd —в 1 пункте стоит отметить, что short_description “не дружит” с декоратором, поэтому придется вносить изменения в код например как здесь.


Спасибо за идеи!
правда по 3 пункту ничего не понял, но буду разбираться…
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB