#python #django #view #model
#python #django #Вид #Модель
Вопрос:
У меня есть рабочие модели, формы, представления и URL-адреса для приложения django CRUD, управляющего функциями клиентов для бизнеса. Кажется, я просто не могу понять, как написать представление, позволяющее пользователю добавлять комментарии или другие данные, относящиеся к клиенту и хранящиеся в других моделях, используя одно представление и шаблон.
Так, например; для клиента a, все комментарии для клиента a с возможностью добавления, изменения и т.д. и то же самое для других связанных моделей.
Я понимаю, как это сделать для одного, я смогу добиться быстрого прогресса. (здесь программист старой школы)
Вот с чем я работаю — это просто.
Модели
class Emergency(models.Model):
# Fields
name = CharField(null = False, blank = False, max_length=60)
address = TextField(blank=True, null=True, help_text='Street and town', verbose_name='Address')
telephone = CharField(blank=False, null=False, unique= True, max_length=20)
relationship = CharField(choices=(('P', 'Parent'),('S', 'Son'),('D', 'Daughter'),('R', 'Relative'),('L', 'Partner')),max_length = 1,default='R')
class Meta:
ordering = ('-pk',)
def __unicode__(self):
return u'%s' % self.pk
def get_absolute_url(self):
return reverse('conform_emergency_detail', args=(self.pk,))
def get_update_url(self):
return reverse('conform_emergency_update', args=(self.pk,))
class Client(models.Model):
# Fields
surname = CharField(null = False, blank = False, max_length=30)
name = CharField(null = False, blank = False, max_length=60)
# Relationship Fields
emergencycontact = models.ForeignKey(Emergency, on_delete=models.CASCADE, name = 'Emergency Contact')
class Meta:
ordering = ('-pk',)
def __unicode__(self):
return u'%s' % self.pk
def get_absolute_url(self):
return reverse('conform_client_detail', args=(self.pk,))
def get_update_url(self):
return reverse('conform_client_update', args=(self.pk,))
class Clientnotes(models.Model):
# Fields
slug = AutoSlugField(populate_from='name', blank=True)
created = DateTimeField(auto_now_add=True, editable=False)
last_updated = DateTimeField(auto_now=True, editable=False)
note = CharField(blank=False, null=False, max_length= 300 )
# Relationship Fields
modified_by = models.ForeignKey(User, related_name='clientnotes_modified_by', on_delete=models.CASCADE, name= 'Changed by')
clientnotes = models.ManyToManyField(Client, name = 'Clients notes')
class Meta:
ordering = ('-created',)
def __unicode__(self):
return u'%s' % self.slug
def get_absolute_url(self):
return reverse('conform_clientnotes_detail', args=(self.slug,))
def get_update_url(self):
return reverse('conform_clientnotes_update', args=(self.slug,))
ФОРМЫ
class ClientForm(forms.ModelForm):
class Meta:
model = Client
fields = ['surname', 'name']
class ClientnotesForm(forms.ModelForm):
class Meta:
model = Clientnotes
readonly_fields = ['slug', 'modified_by']
fields = ['note']
число просмотров
class ClientListView(ListView):
model = Client
class ClientCreateView(CreateView):
model = Client
form_class = ClientForm
class ClientDetailView(DetailView):
model = Client
class ClientUpdateView(UpdateView):
model = Client
form_class = ClientForm
ИМЕНА ШАБЛОНОВ
client_detail.html
client_form.html
client_list.html
У меня есть простые представления, формы и шаблоны для перечисления, просмотра деталей и добавления, и все это работает хорошо — за исключением связанных моделей, потому что я не могу добавить обе модели одновременно. Мне нужно простое понятное руководство simpletons с тем, что я предоставил, чтобы оно встало на место.
Комментарии:
1. Добро пожаловать в SO Cameron Duodu! Не могли бы вы немного конкретнее сформулировать, в чем заключается ваш вопрос?
2. Спасибо за радушный прием. Я думаю, что мой джанго слаб. Мне нужно представление, которое позволит мне добавлять данные для клиента, такие как комментарии клиента и экстренный контакт — для данного клиента. Возможно, я все еще мыслю по-старому, но, кажется, я не понимаю, как это сделать в одном представлении. Вы можете помочь?
3. К сожалению, я мало что знаю о Django, поэтому я не очень помогаю. Предоставленная вами информация поможет другим!
4. Я думаю, вам нужно что-то, что использует внешний ключ модели пользователя? Так что отображаются только сведения, относящиеся к этому пользователю. Я прав?
5. Да, это верно. Я хочу показывать, обновлять только комментарии и т. Д. Только для конкретного пользователя.