Python Django: предварительно выбрать раскрывающийся список настраиваемого поля - PullRequest
1 голос
/ 28 октября 2019

Я новичок в Джанго Питоне. Я пытаюсь создать CRUD с помощью пользовательских полей. Не обновлять страницу, она показывает значение ключа foriegn вместо выпадающего. Вот мой код

Model.py:

class RoleModel(models.Model):
    rol_id = models.AutoField(primary_key=True)
    rol_name = models.CharField(max_length=255)

class Meta:
    db_table = "tbl_roles"

def __str__(self):
    return self.rol_name

class UserModel(models.Model):
    usr_id = models.AutoField(primary_key=True)
    user_rolidfk = models.ForeignKey(RoleModel, blank=True, null=True, db_constraint=True, on_delete=models.CASCADE)
    usr_name = models.CharField(max_length=255)
    usr_email = models.EmailField() 
    usr_picture = models.FileField()
    usr_aboutme = models.TextField()
    usr_datetime = models.DateTimeField(auto_now_add=True)

class Meta:
    db_table = "tbl_users"

def __str__(self):
    return str(self.user_rolidfk) + ' - ' + ', '.join([rol.rol_id for rol in self.user_rolidfk.all()])

def __unicode__(self):
    return  self.usr_name

forms.py:

class RoleForm(forms.ModelForm):
    class Meta:
        model = RoleModel
        fields = "__all__"

     class UserForm(forms.ModelForm):
    class Meta:
        model = UserModel
        fields = ['usr_name', 'user_rolidfk']

Views.py:

def useredit(request, id):  
    users = UserModel.objects.get(usr_id=id) 
    roles = RoleModel.objects.all()
    form  = UserForm()
    data  = {"users": users,
             "roles": roles,
             "form": form   
            }
    return render(request,'user_edit.html', data) 

user_edit.html:

{{ users.user_rolidfk }} 
{{ form.user_rolidfk }} 

1 Ответ

0 голосов
/ 28 октября 2019

Нашел решение. Измените views.py из этого

users = UserModel.objects.get(usr_id=id)  
form = UserForm()

На это:

users = UserModel.objects.get(usr_id=id)  
form = UserForm(request.POST, instance = users)

Надеюсь, это поможет и другим. Спасибо за вашу поддержку, парень.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...