powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / как сделать динамическое изменения поля в админке Django
3 сообщений из 3, страница 1 из 1
как сделать динамическое изменения поля в админке Django
    #37954090
kusha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть модели:

Код: python
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
class CompanyInfo(models.Model):
    name = models.CharField('Имя компании',max_length=250)

class Staff(models.Model):
    company_name = models.ForeignKey(CompanyInfo)
    date = models.DateField()
    name = models.CharField('Имя', max_length=30, )

class Relation(models.Model):
    company_name = models.ForeignKey(CompanyInfo)
    who = models.ForeignKey(Staff, related_name="who", blank=True)
    with_whom = models.ForeignKey(Staff, related_name="with_whom", blank=True)




как сделать так чтобы при выборе названия компании в админке для модели Relation доступными были только те поля с модели Staff, которые относятся к данной компании, я не все что есть в базе данных
...
Рейтинг: 0 / 0
как сделать динамическое изменения поля в админке Django
    #37954159
Фотография FishHook
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Насколько я понял, то что Вы хотите не совсем осуществимо, т.к. company_name у Вас не уникально.
Попробуйте сделать company_name первичным ключом.
...
Рейтинг: 0 / 0
как сделать динамическое изменения поля в админке Django
    #38011723
inoks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kusha,

так должно сработать для существующих элементов, для динамической фильтрации нужны более сложные доработки.

admin.py:

Код: python
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
# -*- coding:utf-8 -*-
from models import Staff, Relation
from django.contrib import admin
from django import forms

class RelationForm(forms.ModelForm):

    def __init__(self, *args, **kwargs):
        super(RelationForm, self).__init__(*args, **kwargs)
        qs = Staff.objects.filter(company_name = self.instance.company_name)
        self.fields['who'].queryset = qs
        self.fields['with_whom '].queryset = qs

class RelationAdmin(admin.ModelAdmin):
    form = RelationForm

admin.site.register(Relation, RelationAdmin)
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / как сделать динамическое изменения поля в админке Django
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]