В вашем цикле v-for
, m
является объектом {lat: ..., lng: ...}
.
Эти объекты не обладают свойством position
, поэтому измените
:position="m.position"
@click="center=m.position"
на
:position="m"
@click="center=m"
Нет, администратор Django не подходит для профилей отдельного пользователя, каждый пользователь смог бы видеть, и отредактировать, все другие профили пользователей. Это подходит больше администратору, который должен управлять всеми пользователями сразу.
То, что необходимо создать, является страницей профиля пользователя. У Django уже есть хорошая системная любезность входа в систему django.contrib.auth модуля. Можно легко интегрировать это в страницы и точно что администраторское использование Django аутентифицировать пользователей.
Затем необходимо будет создать простую страницу, которая выставляет информацию о профиле того определенного пользователя на основе их модели User. Это должно быть относительно безболезненным, поскольку будут только требоваться одно представление и один шаблон, и шаблон может использовать в своих интересах ModelForms.
Я предложил бы, чтобы Вы создали модель Person, которая содержит OneToOneField к модели User (Администраторская модель User сайта.). Некоторые, что как это..
from django.contrib.auth.models import User
class Person(models.Model):
"""The person class FKs to the User class and contains additional user information
including userImage, country, etc"""
user = models.OneToOneField(User, related_name='person_fk')
url = models.URLField(max_length=255, blank=True)
country = models.CharField(max_length=2, blank=True)
state = models.CharField(max_length=50, blank=True)
zipCode = models.IntegerField(max_length=7, blank=True, null=True)
userImage = models.ImageField(upload_to=generate_filename, blank=True, null=True)
Я не считал бы изменение моего персонального профиля на веб-сайте задачей администрирования. Я думаю, что django-профили - то, что Вы ищете.
Модель Django для авторизации немного слишком упрощенна. Это - просто проверки на разрешение на Модели в целом.
Для такого рода вещи Вы в значительной степени вынуждены записать свои собственные функции представления, которые обрабатывают дополнительную проверку.
После записи один или два Вы будете видеть шаблон. Затем можно думать о записи собственному декоратору обрабатывать это.
def profileView( request, object_id ):
p= Profile.objects.get( id=int(object_id) )
if request.session['user'] != p.get_user():
# respond with a 401 not authorized or a helpful message
# process normally, since the session['user'] is the user for the Profile.
Чтобы вышеупомянутое работало, необходимо будет включить сессии и быть уверены, что Вы записываете пользователя на сессии, когда они входят в систему успешно. Необходимо будет также уничтожить сессию, когда они выйдут из системы.
Только для ссылки, вот отрывок, демонстрирующий, как можно довольно легко достигнуть этого эффекта (пользователи могут только отредактировать свои "собственные" объекты) в администраторе Django. Протест: Я не рекомендовал бы делать это для профилей пользователей, это будет легче и более гибким, чтобы просто создать Ваше собственное представление редактирования с помощью ModelForm.
Существует несколько django сменных приложений, которые позволяют полномочия уровня строки на Вашей администраторской модели. Однако я был бы более склонен записать свое собственное представление, которое позволяет пользователям делать это из приложения.
У меня были подобные стремления (использующий администратора contrib) при разработке приложения, я в настоящее время продолжаю работать, но решил, что приложение администрирования действительно для администраторского использования, и что обычным пользователям нужно дать их собственные страницы, чтобы сделать работу и удовлетворение требованиям заказчика (при необходимости).
Можно легко генерировать представления CRUD для конкретной модели с помощью универсальных представлений и modelforms, и просто применить таблицы стилей для последовательного взгляда с остальной частью приложения.