У меня есть модель профиля пользователя. Я использую формы модели django для создания и редактирования профилей пользователей. Теперь я хочу изменить только 2 поля в профилях lat
и lon
. Так что в моем Index.html у меня есть небольшая HTML-форма. Как только пользователь нажимает, найдите меня. Широта и долгота автоматически регистрируются, и кнопка отправки будет нажата с помощью Jquery. Как использовать данные из этой формы для обновления моих пользователей lat
и lon
. Просто я не использовал HTML-форму django, и мне нужно обновить lat
lon
, введенный в эту мини-форму, до профиля пользователя
![enter image description here](https://i.stack.imgur.com/EoB2S.png)
<form method="post" action="{{ ??????????? }}">
<input id="jsLat" type="text" placeholder="latittude" >
<input id="jsLon" type="text" placeholder="longitude">
<button type="submit" id="submit">Submit</button>
</form>
Должен ли я создать другой вид & URL (таким образом у меня будет 2 вида для редактирования профиля и 2 URL-адреса для редактирования профиля), чтобы добавить lat
и lon
к моему существующему профилю. Или есть ли способ, которым я могу использовать существующее представление и URL-адрес и обновить 2 поля
ниже мои модели
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
city = models.CharField(max_length=100)
age = models.DateField(blank=True, null=True)
profile_image = models.ImageField(default='', blank=True, null=True)
null=True)
is_verified = models.BooleanField(default=False)
lat = models.FloatField(blank=True, null=True)
lon = models.FloatField(blank=True, null=True)
Ниже представлен мой профиль
@login_required
def edit_profile(request):
if request.method == 'POST':
user_form = UserEditForm(data=request.POST or None, instance=request.user)
profile_form = ProfileEditForm(data=request.POST or None, instance=request.user.profile, files=request.FILES)
if user_form.is_valid() and profile_form.is_valid():
user_form.save()
profile_form.save()
return redirect('accounts:profile', username=request.user.username)
else:
user_form = UserEditForm(instance=request.user)
profile_form = ProfileEditForm(instance=request.user.profile)
context = {'user_form': user_form,
'profile_form': profile_form}
return render(request, 'accounts/profile_edit.html', context)
Ниже приведены мои forms.py
class UserEditForm (forms.ModelForm):
class Meta:
model = User
fields = ('first_name', 'last_name', 'email', 'username')
class ProfileEditForm(forms.ModelForm): #UserProfileForm or ProfileEdit
class Meta:
model = Profile
fields = ('city', 'age', 'profile_image','lat','lon')
Ниже мои URL
urlpatterns = [
url(r'^profile/(?P<username>[-\w]+)/$', views.ProfileView.as_view(), name='profile'),
url(r'^edit_profile/$', views.edit_profile, name='edit_profile'),
#Profile created automatically when user is created
]
PS: отсюда я сократил код геоджанго, поскольку он не является частью этого вопроса