TypeError at /dashboard/profiles/create/ Поле 'id' ожидало число, но получило []

Здравствуйте инженеры Я пытался получить выбор модели через представление, чтобы я мог отобразить их в шаблоне, чтобы сделать его легким для пользователей, но я клянусь, это дало мне некоторые трудные времена Я думал, что это потому, что у меня нет элементов в базе данных, но даже когда я добавил их, ошибка сохраняется. Пожалуйста, дайте мне идеи, я уверен, что с вами это сработает. вот моя модель:

class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
avatar = models.ImageField(upload_to = '', default = path_and_rename, blank=True)
provider = 'provider'
requester = 'requester'
user_types = [
    (provider, 'provider'),
    (requester, 'requester'),
   ]
user_type = models.CharField(max_length=155, choices=user_types, default=requester)
first_name = models.CharField(max_length=255, default='')
last_name = models.CharField(max_length=255, default='')
GENDER_MALE = 'Male'
GENDER_FEMALE = 'Female'
OTHER = 'Other'

GENDER_CHOICES = [
    (GENDER_MALE, 'Male'),
    (GENDER_FEMALE, 'Female'),
    (OTHER, 'Other'),
   ]
gender = models.CharField(max_length=15, choices=GENDER_CHOICES, blank=True)
email = models.EmailField(default='none@email.com')
phonenumber = models.CharField(max_length=15, default='') #blank=True, null=True
birth_date = models.DateField(default='1975-12-12')
residential_address = models.CharField(max_length=255, default='')
village = models.CharField(max_length=255, default='')
city = models.CharField(max_length=255, default='')
state = models.CharField(max_length=255, default='')
country = models.CharField(max_length=255, default='')
education_background = models.CharField(max_length=255, default='')
single = 'single'
married = 'married'
statuses = [
    (single, 'single'),
    (married, 'married'),
   ]
marrital_status = models.CharField(max_length=255, choices=statuses, default='single')
USD = 'United States of America Dollar'
CND = 'Canadian Dollar'
EUR = 'Euro'
Currency_choices = [
    (USD, 'United States of America Dollar'),
    (CND, 'Canadian Dollar'),
    (EUR, 'Euro')
   ]
currency_choice = models.CharField(max_length=155, choices=Currency_choices, default='USD')
amount_to_pay = models.CharField(max_length=255, default='')
def __str__(self):
    return self.user.username

def get_absolute_url(self):
    return reverse('dashboard:profile_detail', kwargs= {'id':self.id} )

form

class ProfileCreateForm(forms.ModelForm):
class Meta:
    model = Profile
    fields = [
        'avatar',
        'user_type',
        'first_name',
        'last_name',
        'gender',
        'email',
        'phonenumber',
        'birth_date',
        'residential_address',
        'address',
        'village',
        'city',
        'state',
        'country',
        'education_background',
        'phonenumber',
        'birth_date',
        'marrital_status',
        'currency_choice',
        'amount_to_pay',]

и затем представление с методомModel_with_choices._meta.get_field('your_foreign_key_variable_name').choices:

def profile_create_view(request, **kwargs):
form = ProfileCreateForm(request.POST, instance=request.user)
profiles = Profile.objects.all()
ids = profiles.values_list('pk', flat=True)
obj = Profile.objects.get(id=[profile_id for profile_id in ids])
user_type = Profile.user_types
gender_choice = Profile.GENDER_CHOICES
marital_status = Profile.statuses
Currency_choice = Profile.Currency_choices
    
if request.method == "POST":
    form = ProfileCreateForm(request.POST, instance=request.user)
    context = {
    'obj':obj,
    'form' : form,
    'user_type' : user_type,
    'gender_choice' : gender_choice,
    'marital_status' : marital_status,
    'Currency_choice' : Currency_choice,
}
    if form.is_valid():
        form.save()
        return redirect('dashboard:dash_home')        
else:
    form = ProfileCreateForm(instance=request.user)
    context = {
    'form' : form,}

return render(request, 'users/profile.html', {'context': context})
Вернуться на верх