Как я могу создать унаследованный объект в администраторе из существующего экземпляра базовой модели? - PullRequest
2 голосов
/ 03 мая 2011

У меня есть следующее

class Employee(User):
    emplorateID=models.OneToOneField(Code) 
    business=models.ForeignKey(Business)

но у меня есть пользователи, которых я хотел бы выбрать в EmployeeAdmin и ввести дополнительные данные поля для. Я не понимаю, как бы настроить ModelAdmin для создания нового Employee из существующего User (фактически, новой строки в таблице Employee для ссылки на существующую запись User)

Ответы [ 2 ]

0 голосов
/ 26 декабря 2012

Я не знаю форму ответа, но вот код ответа:

employee = Employee(user_ptr=existing_user,
                    emplorateID=something,
                    business=somebusiness)
employee.save_base(raw=True)
0 голосов
/ 12 мая 2011

Наследование не то, что вы хотите в этом случае;вам просто нужна другая модель с OneToOneField, указывающей назад.

Попробуйте:

from django.contrib.auth.models import User
from django.db import models

class Employee(models.Model):
    user = models.OneToOneField(User, related_name='employee')
    emplorateID = models.OneToOneField(Code)
    business = models.ForeignKey(Business)

Это должно быть JustWork ™.

...