Create, Update and Delete in Django

依然范特西╮ 提交于 2019-12-25 07:27:03

问题


I am only creating entries for some fields in my models.py at the moment. Now I want to add Delete and Update functions to my Application. Let's take this Model for example:

class todoList(models.Model):
  trainee = models.ForeignKey(trainee, verbose_name = "Azubi", blank = True)
  todoLearningObjective = models.ManyToManyField(learningObjective, verbose_name = "Lernziel", blank = True, null = True)
  tasks = models.TextField(verbose_name = 'Aufgaben')
  levyDate = models.DateField(verbose_name = 'Abgabedatum', blank = True, null = True)
  priority = models.IntegerField(verbose_name = 'Prioritaet', blank = True, null = True)

  class Meta:
    verbose_name = "To-Do Liste"
    verbose_name_plural = "To-Do Listen"

The matching Form:

class todoListForm(forms.Form):
  formtrainee = forms.IntegerField(required = False)
  formtodoLearningObjective = forms.CharField(required = False)
  formtasks = forms.CharField(required = True)
  formlevyDate = forms.DateField(required = False)
  formpriority = forms.IntegerField(required = False)

And the View:

def todo(request):
  trainee_objects = trainee.objects.all()
  usernameID = 1
  for traineeUser in trainee_objects:
    if traineeUser.username == request.user.username:
      usernameID = traineeUser.id

  if request.method == 'POST':
    forms = todoListForm(request.POST)
    if forms.is_valid():
      formtasks = forms.cleaned_data['formtasks']
      formtodoLearningObjective = forms.cleaned_data['formtodoLearningObjective']
      formlevyDate = forms.cleaned_data['formlevyDate']
      formpriority = forms.cleaned_data['formpriority']

      neueTodo=todoList(tasks=formtasks, levyDate=formlevyDate, priority=formpriority, trainee_id = usernameID)
      neueTodo.save()
      for todo in learningObjective.objects.filter(learningObjectives=formtodoLearningObjective):
        neueTodo.todoLearningObjective.add(todo)
    else:
      forms = todoList()
    return render(request, 'todo.html', {'todo': todoList.objects.all(), 'Lernziel': learningObjective.objects.all()})

As you can see, I have M to M relations and I am just creating new entries. My question is now: Do I have to create a new update and delete method for every model ? Or is there an easier way ? I want to keep my project DRY although I probably failed that mission already. It would be awesome if you could give me example or documentation on how Deleting and Updating in Django works all in all.


回答1:


You have built class based views for that.

from django.views.generic import CreateView,UpdateView,DeleteView

class Todo(CreateView):
    formClass = todoListForm
    template_name = 'your_template_name.html'

More information



来源:https://stackoverflow.com/questions/23628358/create-update-and-delete-in-django

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!