Написание представления, позволяющего пользователю добавлять связанные данные для клиента, например, комментарии;на одной странице - PullRequest
0 голосов
/ 14 апреля 2019

У меня есть рабочие модели, формы, представления и URL-адреса для CRUD-приложения django, управляющего функциями клиента для бизнеса.Я просто не могу понять, как написать представление, позволяющее пользователю добавлять комментарии или другие данные, относящиеся к клиенту и сохраненные в других моделях с использованием одного представления и шаблона.

Так, например;для клиента 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

У меня есть простые представления, формы и шаблоны для просмотра, просмотра деталей и добавления, и все это работает хорошо - за исключением связанных моделей, потому что яЯ не могу добавить обе модели одновременно.Мне нужно простое и понятное руководство по простоте с тем, что я предоставил, чтобы оно встало на свои места.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...