Advertisement
Guest User

Untitled

a guest
Jun 24th, 2019
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.41 KB | None | 0 0
  1. class Listing(models.Model):
  2. realtor = models.ForeignKey(Realtor, on_delete=models.CASCADE, verbose_name='Риелтор')
  3. category = models.ForeignKey(Category, on_delete=models.CASCADE, verbose_name='Категория')
  4. region = models.ForeignKey(Region, on_delete=models.CASCADE, verbose_name='Область')
  5. city = models.ForeignKey(City, on_delete=models.CASCADE, verbose_name='Город')
  6. district = models.ForeignKey(District, on_delete=models.CASCADE, verbose_name='Район')
  7. title = models.CharField(max_length=200, verbose_name='Заголовок')
  8. landmark = models.CharField(blank=True, max_length=200, verbose_name='Ориентир')
  9. ...
  10. def __str__(self):
  11. return self.title
  12.  
  13. class Category(models.Model):
  14. name = models.CharField(max_length=100, verbose_name='Название')
  15. slug = models.SlugField(blank=True)
  16.  
  17. def __str__(self):
  18. return self.name
  19.  
  20. def get_absolute_url(self):
  21. return reverse('category_view', kwargs={'category_slug': self.slug})
  22.  
  23. class Meta:
  24. verbose_name = 'Категория'
  25. verbose_name_plural = 'Категории'
  26.  
  27. def pre_save_category_slug(sender, instance, *args, **kwargs):
  28. if not instance.slug:
  29. slug = slugify(translit(str(instance.name), reversed=True))
  30. instance.slug = slug
  31.  
  32. pre_save.connect(pre_save_category_slug, sender=Category)
  33.  
  34. @login_required
  35. def listing_add(request):
  36. logos = Logo.objects.all()
  37. feedbacks = Feedback.objects.all()
  38. categories = Category.objects.all()
  39. form = ListingForm()
  40. if request.method == "POST":
  41. form = ListingForm(request.POST, request.FILES)
  42. if form.is_valid():
  43. listing = form.save(commit=False)
  44. listing.realtor = request.user.realtor
  45. listing.save()
  46. return redirect('dashboard')
  47. return render(request, 'listings/listing_add.html', {
  48. 'logos': logos,
  49. 'form': form,
  50. 'categories': categories,
  51. 'feedbacks': feedbacks
  52. })
  53.  
  54. {% block content %}
  55. <section id="listing_add" class="bg-light py-5">
  56. <div class="container">
  57. <div class="row">
  58. <div class="col-md-6 mx-auto">
  59. <div class="card">
  60. <div class="card-header bg-primary text-white">
  61. <h4>
  62. <i class="fas fa-plus"></i> Добавить объявление</h4>
  63. </div>
  64. <div class="card-body">
  65. <form method="POST" novalidate enctype="multipart/form-data">
  66. {% csrf_token %}
  67. {% bootstrap_form form %}
  68. <input type="submit" value="Добавить" class="btn btn-secondary btn-block">
  69. </form>
  70. </div>
  71. </div>
  72. </div>
  73. </div>
  74. </div>
  75. </section>
  76. {% endblock %}
  77.  
  78. <form id="searchForm" data-models-url="{% url 'ajax_load_models' %}" action="{% url 'search' %}" method="get">
  79. <div class="row">
  80.  
  81. <div class="form-group col-4">
  82. {{ form.car_make }}
  83. </div>
  84. <div class="form-group col-4">
  85. {{ form.car_model }}
  86. </div>
  87. </div>
  88.  
  89. <div class="form-group col-4">
  90. <input type="submit" value="Search" class="submit">
  91. </div>
  92. </form>
  93.  
  94. $("#id_car_make").change(function () {
  95. var url = $("#searchForm").attr("data-models-url"); // get the url of the `load_cities` view
  96. var carMakeId = $(this).val(); // get the selected car make ID from the HTML input
  97.  
  98. $.ajax({ // initialize an AJAX request
  99. url: url, // set the url of the request (= localhost:8000/hr/ajax/load-cities/)
  100. data: {
  101. 'car_make': carMakeId // add the car make id to the GET parameters
  102. },
  103. success: function (data) { // `data` is the return of the `load_models` view function
  104. $("#id_car_model").html(data); // replace the contents of the model input with the data that came from the server
  105. }
  106. });
  107.  
  108. });
  109.  
  110. def load_models(request):
  111. car_make_id = request.GET.get('car_make')
  112. car_models = CarModel.objects.filter(car_make_id=car_make_id).order_by('name')
  113. return render(request, 'leases/partials/car_model_dropdown_list_options.html', {'car_models': car_models})
  114.  
  115. <option value="">Model</option>
  116. {% for car_model in car_models %}
  117. <option value="{{ car_model.pk }}">{{ car_model.name }}</option>
  118. {% endfor %}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement