根据管理站点中的用户输入批量更新模型字段

时间:2019-11-18 02:04:13

标签: django django-admin user-input

在django中,假设我有一个模型,该模型的模型中有一个名为“ RouteNumber”的整数字段。我在django管理站点中管理所有模型条目,我想一次将路由号分配给100多个条目。如何根据用户输入进行操作?我在考虑使用一个管理操作,该操作将请求一个数字,并且所有查询集都将被分配此值

在我的模型中。py:

class Person(models.Model):

    Name = models.CharField("Nom du parent", max_length=40, default="")
    RouteNumber= models.IntegerField("Numéro de route", default=None, blank=True, null=True)

在我的admin.py中:

def assign_route_number(self, obj):
    # This is where I'm lost ====
    number = user_input("Enter a route number")
    # ========

    for obj in queryset:
        obj.RouteNumber = number
        obj.save()

但是我不知道如何获得用户输入。有一个简单的方法可以做到吗?

谢谢您的回答

1 个答案:

答案 0 :(得分:0)

# If you want to get data in admin.py while saving it. You can use 'save_model' method

def save_model(self, request, obj, form, change):
    route_number = request.POST.get('RouteNumber')
    if change == False:
        # add form save changes
        pass
    else:
        # edit form save changes    
    super().save_model(request, obj, form, change)