Автозаполнение пользователя manytomanyfield с помощью админ сайта Django - PullRequest
0 голосов
/ 12 декабря 2011

У меня есть класс Business, пример:

class Business(models.Model):
    users = models.ManyToManyField(User)
    business_name = models.CharField(max_length=100)

То есть переменная users связана с Use r. И давайте предположим, что в User создано 5 пользователей: Admin, Test, Test1, Test2 и Test3. Таким образом, только Admin является суперпользователем всех пользователей, и скажем, что я вошел в систему, используя Test2. Поэтому, когда я нажал кнопку «Сохранить», поле многих данных будет автоматически сохранено с Test2, так что оно будет автоматически сохранено на том, кто бы ни был request.user.

А также, есть ли способ автоматически сохранить всех пользователей во множестве полей? спасибо.

1 Ответ

1 голос
/ 12 декабря 2011

Вам не нужно использовать JavaScript для этого, также вам не нужно показывать поле формы для users, если оно должно автоматически обновляться. Вместо этого вы можете создать ModelAdmin подкласс и переопределить save_model метод . Например:

В admin.py вашего приложения

from django.contrib import admin
from models import Business

class BusinessAdmin(admin.ModelAdmin):
    exclude = ["users"]

    def save_model(self, request, obj, form, change):
        if not obj.id: obj.save()
        obj.users.add(request.user)
        obj.save()
admin.site.register(Business, BusinessAdmin)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...