Key code as follows:
models.py
{{{
class Room(models.Model):
id = models.UUIDField(default=uuid4, primary_key=True, editable=False)
name = models.TextField()
def __str__(self):
return self.name
class Teacher(models.Model):
room = models.OneToOneField(Room, on_delete=models.CASCADE,
primary_key=True)
name = models.TextField()
def __str__(self):
return self.name
class Student(models.Model):
id = models.UUIDField(default=uuid4, primary_key=True, editable=False)
teacher = models.ForeignKey(Teacher, on_delete=models.CASCADE)
name = models.TextField()
def __str__(self):
return self.name
}}}
admin.py
{{{
from .models import Room, Teacher, Student
@admin.register(Room)
class RoomAdmin(admin.ModelAdmin):
pass
@admin.register(Teacher)
class TeacherAdmin(admin.ModelAdmin):
class StudentInline(admin.TabularInline):
model = Student
inlines = [StudentInline]
}}}
--
Ticket URL: <https://code.djangoproject.com/ticket/30006>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
Comment (by Gerhut):
Found a workaround: add {{{readonly_fields = ('teachers',)}}} to student
inline works.
--
Ticket URL: <https://code.djangoproject.com/ticket/30006#comment:1>
Comment (by Gerhut):
{{{
>>> from app.models import *
>>> Teacher.objects.last().room_id
UUID('38c7b7f8-1006-467c-809b-e95546dcc58e')
>>> Student.objects.last().teacher_id
'38c7b7f81006467c809be95546dcc58e'
}}}
They are all UUIDs
--
Ticket URL: <https://code.djangoproject.com/ticket/30006#comment:2>
* status: new => closed
* component: contrib.admin => Database layer (models, ORM)
* resolution: => duplicate
Comment:
Duplicate of #27595 which will be fixed in Django 2.2.
--
Ticket URL: <https://code.djangoproject.com/ticket/30006#comment:3>