Advertisement
Guest User

Untitled

a guest
Oct 12th, 2017
409
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.10 KB | None | 0 0
  1. class LodgingOffer(models.Model):
  2.  
  3. # Foreign Key to my User model
  4. created_by = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
  5.  
  6. ad_title = models.CharField(null=False, blank=False,
  7. max_length=255, verbose_name='Título de la oferta')
  8.  
  9. slug = models.SlugField(max_length=100, blank=True)
  10.  
  11. country = CountryField(blank_label='(Seleccionar país)', verbose_name='Pais')
  12.  
  13. city = models.CharField(max_length=255, blank = False, verbose_name='Ciudad')
  14.  
  15. def __str__(self):
  16. return "%s" % self.ad_title
  17.  
  18. pub_date = models.DateTimeField(auto_now_add=True,)
  19.  
  20. def get_absolute_url(self):
  21. return reverse('host:detail', kwargs = {'slug' : self.slug })
  22.  
  23. # I assign slug to offer based in ad_title field,checking if slug exist
  24. def create_slug(instance, new_slug=None):
  25. slug = slugify(instance.ad_title)
  26. if new_slug is not None:
  27. slug = new_slug
  28. qs = LodgingOffer.objects.filter(slug=slug).order_by("-id")
  29. exists = qs.exists()
  30. if exists:
  31. new_slug = "%s-%s" % (slug, qs.first().id)
  32. return create_slug(instance, new_slug=new_slug)
  33. return slug
  34.  
  35. # Brefore to save, assign slug to offer created above.
  36. def pre_save_article_receiver(sender, instance, *args, **kwargs):
  37. if not instance.slug:
  38. instance.slug = create_slug(instance)
  39.  
  40. pre_save.connect(pre_save_article_receiver, sender=LodgingOffer)
  41.  
  42. class HostingOfferDetailView(UserProfileDataMixin, LoginRequiredMixin, DetailView):
  43. model = LodgingOffer
  44. template_name = 'lodgingoffer_detail.html'
  45. context_object_name = 'lodgingofferdetail'
  46.  
  47. def get_context_data(self, **kwargs):
  48. context = super(HostingOfferDetailView, self).get_context_data(**kwargs)
  49. user = self.request.user
  50.  
  51. # LodgingOffer object
  52. #lodging_offer_owner = self.get_object()
  53.  
  54. # Get the full name of the lodging offer owner
  55. lodging_offer_owner_full_name = self.get_object().created_by.get_long_name()
  56.  
  57. # Get the lodging offer email owner
  58. lodging_offer_owner_email = self.get_object().created_by.email
  59.  
  60. # Get the lodging offer title
  61. lodging_offer_title = self.get_object().ad_title
  62.  
  63. # Get the user interested email in lodging offer
  64. user_interested_email = user.email
  65.  
  66. # Get the user interested full name
  67. user_interested_full_name = user.get_long_name()
  68.  
  69. context['user_interested_email'] = user_interested_email
  70. context['lodging_offer_owner_email'] = lodging_offer_owner_email
  71.  
  72. # Send the data (lodging_offer_owner_email
  73. # user_interested_email and lodging_offer_title) presented
  74. # above to the contact_owner_offer function
  75. contact_owner_offer(self.request, lodging_offer_owner_email,
  76. user_interested_email, lodging_offer_title)
  77.  
  78. return context
  79.  
  80. def contact_owner_offer(request, lodging_offer_owner_email, user_interested_email, lodging_offer_title):
  81. user = request.user
  82. print("a", lodging_offer_owner_email, user_interested_email)
  83. if user.is_authenticated:
  84. print('Send email')
  85. mail_subject = 'Interesados en tu oferta'
  86.  
  87. context = {
  88. 'lodging_offer_owner_email': lodging_offer_owner_email,
  89. # usuario dueño de la oferta TO
  90.  
  91. 'offer': lodging_offer_title,
  92. # oferta por la que se pregunta
  93.  
  94. 'user_interested_email': user_interested_email,
  95. # usuario interesado en la oferta
  96.  
  97. 'domain': settings.SITE_URL,
  98. 'request': request
  99. }
  100.  
  101. message = render_to_string('contact_user_own_offer.html', context)
  102. #to_email = lodging_offer_owner.email,
  103.  
  104. send_mail(mail_subject, message, settings.DEFAULT_FROM_EMAIL,
  105. [lodging_offer_owner_email], fail_silently=True)
  106.  
  107. # email = EmailMessage(mail_subject, message, to=[to_email])
  108. # email.send()
  109. # return redirect('articles:article_list')
  110.  
  111. url(r'^contact-to-owner/(?P<email>[w.@+-]+)/from/'
  112. r'(?P<interested_email>[w.@+-]+)/(?P<slug>[w-]+)/$',
  113. contact_owner_offer, name='contact_owner_offer'),
  114.  
  115. <div class="contact">
  116. <a class="contact-button" href="{% url 'host:contact_owner_offer' email=lodging_offer_owner_email interested_email=user_interested_email slug=lodgingofferdetail.slug %}">
  117. <img src="{% static 'img/icons/contact.svg' %}" alt="">
  118. <span>Contactar</span>
  119. </a>
  120. </div>
  121.  
  122. TypeError: contact_owner_offer() got an unexpected keyword argument 'email'
  123. [10/Oct/2017 01:04:06] "GET /host/contact-to-owner/botibagl@gmail.com/from/ces@ces.edu.co/apartacho/ HTTP/1.1" 500 77979
  124.  
  125. def contact_owner_offer(request, lodging_offer_owner_email, user_interested_email, slug):
  126. user = request.user
  127. print("a", lodging_offer_owner_email, user_interested_email, slug)
  128. if user.is_authenticated:
  129. print('Send email')
  130. mail_subject = 'Interesados en tu oferta'
  131.  
  132. context = {
  133. 'lodging_offer_owner_email': lodging_offer_owner_email,
  134. # usuario dueño de la oferta TO
  135.  
  136. 'offer': slug,
  137. # oferta por la que se pregunta
  138.  
  139. 'user_interested_email': user_interested_email,
  140. # usuario interesado en la oferta
  141.  
  142. 'domain': settings.SITE_URL,
  143. 'request': request
  144. }
  145.  
  146. message = render_to_string('contact_user_own_offer.html', context)
  147. #to_email = lodging_offer_owner.email,
  148.  
  149. send_mail(mail_subject, message, settings.DEFAULT_FROM_EMAIL,
  150. [lodging_offer_owner_email], fail_silently=True)
  151.  
  152. url(r'^contact-to-owner/(?P<lodging_offer_owner_email>[w.@+-]+)/from/'
  153. r'(?P<interested_email>[w.@+-]+)/(?P<slug>[w-]+)/$',
  154. contact_owner_offer,
  155. name='contact_owner_offer'
  156. ),
  157.  
  158. <div class="contact">
  159. <a class="contact-button" href="{% url 'host:contact_owner_offer' lodging_offer_owner_email=lodging_offer_owner_email interested_email=user_interested_email slug=lodgingofferdetail.slug %}">
  160. <img src="{% static 'img/icons/contact.svg' %}" alt="">
  161. <span>Contactar</span>
  162. </a>
  163. </div>
  164.  
  165. Traceback:
  166.  
  167. File "/home/bgarcial/.virtualenvs/hostayni/lib/python3.6/site-packages/django/core/handlers/exception.py" in inner
  168. 42. response = get_response(request)
  169.  
  170. File "/home/bgarcial/.virtualenvs/hostayni/lib/python3.6/site-packages/django/core/handlers/base.py" in _get_response
  171. 187. response = self.process_exception_by_middleware(e, request)
  172.  
  173. File "/home/bgarcial/.virtualenvs/hostayni/lib/python3.6/site-packages/django/core/handlers/base.py" in _get_response
  174. 185. response = wrapped_callback(request, *callback_args, **callback_kwargs)
  175.  
  176. Exception Type: TypeError at /host/contact-to-owner/botibagl@gmail.com/from/fabiola.quimica@gmail.com/apartacho/
  177. Exception Value: contact_owner_offer() got an unexpected keyword argument 'interested_email'
  178.  
  179. def contact_owner_offer(request, email, interested_email, slug):
  180. ....
  181.  
  182. >>> def foo(bar):
  183. ... print bar
  184. ...
  185. >>> foo(bar=10)
  186. 10
  187. >>> foo(bar2=10)
  188. Traceback (most recent call last):
  189. File "<stdin>", line 1, in <module>
  190. TypeError: foo() got an unexpected keyword argument 'bar2'
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement