Создать таблицу для каждой записи в модели - PullRequest
0 голосов
/ 29 декабря 2018

Я новичок в python и django, хочу динамически добавлять таблицу в базу данных, когда новый пользователь регистрируется (конечно, на python), другими словами, когда пользователь вставляет новые данные в модель, которую я хочусоздайте таблицу явно для этой записи, чтобы добавить дополнительные данные, которые будут связаны с этой записью.

Я думаю, что у python есть простой способ справиться с такой ситуацией

Спасибо.

Представление изображения

1 Ответ

0 голосов
/ 29 декабря 2018

Вам нужно иметь 2 таблицы: Users и Todos.Модель User уже существует в Django, если только вы не хотите писать собственного пользователя, поэтому вам нужно добавить модель Todos

из django.contrib.auth.models import User

Class Todo(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE, related_name='todos')
    name = models.CharField(max_length=50)   
    note = models.TextField()

Когда у вас есть john, alen, bob пользователь с идентификатором 1,2,3, вы можете иметь:

john = User.objects.get(id=1)
alen = User.objects.get(id=2)
bob = User.objects.get(id=3)

Давайте создадим Todo для alen в соответствии с вашимсхема:

Todo.objects.create(user=alen, name='visit', note='Visit Doc.')
Todo.objects.create(user=alen, name='Buy', note='Buy Radio')

Давайте создадим Todo для john согласно вашей схеме:

Todo.objects.create(user=john, name='pay bill', note='some large text')
Todo.objects.create(user=john, name='watch Dog', note='detail')
Todo.objects.create(user=john, name='play game', note='detail')

Давайте создадим Todo для bob согласно вашей схеме:

Todo.objects.create(user=bob, name='call', note='call John')
Todo.objects.create(user=bob, name='Meet', note='meet jane')

Чтобы получить Todo конкретного пользователя, например, для bob, вы можете иметь:

bob_todos = Todo.objects.filter(user=bob)

или

bob_todos = bob.todos.all()

в соответствии с related_name

...