2016-01-30 3 views
1

В интерфейсе администратора - можно ли установить поле только для чтения, но также установить значение? Например, я создаю CRM, и у организации будет программа. Я хочу, чтобы пользователь, который создает программу, всегда использовал организацию, к которой они принадлежат.Интерфейс администратора Django ReadOnly

пример:

Программа имя organizationId

Пользователь Имя organizationId

Я хочу код, чтобы быть чем-то вроде

class Program(models.adminmodel): 

readonly = ["organization"] 

organization = user.organization 

класса организации (models.Model) :

name = models.CharField(max_length=100) 
street = models.CharField(max_length=100) 
city = models.CharField(max_length=100) 
state = models.ForeignKey(State) 
phone = models.CharField(max_length=100) 
zipcode = models.CharField(max_length=100) 

def __str__(self): 
    return self.name 

класс OrganizationUser (models.Model):

organization = models.ForeignKey(Organization) 
user = models.ForeignKey(User) 

def __str__(self): 
    return self.name 

пользователь же таблица по умолчанию в Джанго

ответ

2

Да, вы можете сделать админ поле только для чтения

https://docs.djangoproject.com/en/1.9/ref/contrib/admin/#django.contrib.admin.ModelAdmin.readonly_fields

class MyAdmin(admin.ModelAdmin) 
    fields = ("organization", "field2") 
    readonly_fields = ("organization",) 

    def save_model(self, request, obj, form, change): 
     obj.organization = request.user.organization 
     obj.save() 
+0

Привет, Рамаст. Спасибо, но это не так. я спрашиваю. Я спрашиваю, можете ли вы установить значение поля readonly в качестве пользователя для организации –

+0

Обновлено ответ;) – Ramast

+0

Спасибо - Знаете ли вы, как ti может сделать эту часть работы Организация = OrganizationUser.objects.filter (пользователь = request.user.id) Мне нужно просто получить Организацию от Organizationuser –

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