Вы можете мне помочь? Я не знаю django - ajax хорошо, также я новичок в django. Я хочу зарегистрировать пользователя на Mock test , поэтому я попытался использовать приведенные ниже коды. Я не могу понять, в чем мои ошибки. model.py
class MockTest(models.Model):
name = models.CharField(max_length=100)
slug = models.SlugField(unique=True)
user = models.ForeignKey(User, on_delete=models.CASCADE)
bio = models.TextField(null= True, blank=True)
is_free = models.BooleanField()
fee = models.DecimalField(max_digits=10, decimal_places=2)
time_created = models.DateTimeField(auto_now=False,auto_now_add=True)
time_start = models.DateField(auto_now=False, auto_now_add=False, default='')
speak_date = models.DateField(auto_now=False, auto_now_add=False, null=True, blank=True)
registerations = models.ManyToManyField(User, blank=True, null=True, related_name='registerations')
def save(self, *args, **kwargs): # new
if not self.slug:
self.slug = slugify(self.name)
return super().save(*args, **kwargs)
def __str__(self):
return self.name
def get_absolute_url(self):
return reverse("teacher:mock_view", kwargs={"slug": self.slug})
def total_registers(self):
return self.registerations.count()
def is_registered(self,request):
return self.registerations.filter(id=request.user.id).exists()
views.py
def register(request):
if request.method == 'POST':
user = request.user
slug = request.POST.get('slug', None)
mock = get_object_or_404(MockTest, slug=slug)
if mock.registerations.filter(id=user.id).exists():
massage = "You are already registered"
else:
mock.registerations.add(user)
massage = "succes"
cxt = {'total_registers': mock.total_registers, 'massage':massage}
return HttpResponse(json.dumps(cxt), content_type='application/json')
urls.py
path('register/', register, name='register')
html
<input type="button" id="register" class="" name="{{ mock.slug }}" value="Register" />
<script>
$('#register').click(function(){
$.ajax({
type: "POST",
url: "{% url 'student:register' %}",
data: {'slug': $(this).attr('name'), 'csrfmiddlewaretoken': '{{ csrf_token }}'},
dataType: "json",
success: function(response) {
alert(response.message);
alert('Registered people now ' + response.total_registers);
},
error: function(rs, e) {
alert('Failed');
}
});
})
</script>
Я думаю, мне нужны jQuery и JSON, но я не уверен, как это реализовать здесь, чтобы сделать моя собственная "регистрация" для моего сайта Есть какие-нибудь мысли / предложения?