У меня есть 2 модели в Джанго, которые связаны отношениями один к одному.Например:
class User(AbstractBaseUser):
username = models.CharField(max_length=15, unique=True)
email = models.EmailField(max_length=100, unique=True)
date_joined = models.DateTimeField(auto_now_add=True,
null=True)
bio = models.CharField(max_length=200, null=True)
avatar = models.CharField(max_length=200, null=True)
profile = models.OneToOneField(Settings, null=True)
class Profile(models.Model):
GENDER_CHOICES = (
('M', 'Male'),
('F', 'Female'),
)
bio = models.CharField(max_length=200, null=True)
avatar = models.CharField(max_length=200, null=True)
gender = models.CharField(max_length=1, choices=GENDER_CHOICES, null=True)
dob = models.DateField(max_length=8, null=True)
У каждого пользователя может быть Profile
информация, но некоторые пользователи, возможно, не ввели какую-либо информацию, поэтому у них может не быть предоставленной информации (0 строк).Я хотел бы создать страницу настроек, которая либо создает, либо обновляет данные профиля пользователя после отправки.В основном это то, что у меня пока есть:
class ProfileSettings(UpdateView):
template_name = 'oauth/profile-settings.html'
form_class = ProfileForm
model = Profile
def get_object(self, queryset=None):
return get_object_or_404(Profile, user=self.request.user)
При таком типе просмотра обновление работает, когда у пользователя есть данные профиля, но когда у пользователя нет данных профиля, вместо этого отображается ошибка 404.,Можно ли отобразить представление для пользователя, даже если у него нет данных профиля, и если да, могут ли они создать данные профиля для себя, а затем вернуться и обновить их?