signup: add referrer
This commit is contained in:
parent
31ff6d5606
commit
429555c4bd
18
app/signup/migrations/0002_signup_referrer.py
Normal file
18
app/signup/migrations/0002_signup_referrer.py
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
# Generated by Django 5.0.2 on 2024-02-27 16:29
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('signup', '0001_initial'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='signup',
|
||||||
|
name='referrer',
|
||||||
|
field=models.CharField(blank=True, max_length=255),
|
||||||
|
),
|
||||||
|
]
|
@ -7,6 +7,7 @@ class Signup(models.Model):
|
|||||||
anonymized_ip = models.GenericIPAddressField()
|
anonymized_ip = models.GenericIPAddressField()
|
||||||
user_agent = models.CharField(max_length=255)
|
user_agent = models.CharField(max_length=255)
|
||||||
geoip = models.JSONField(null=True, blank=True)
|
geoip = models.JSONField(null=True, blank=True)
|
||||||
|
referrer = models.CharField(max_length=255, blank=True)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
constraints = [
|
constraints = [
|
||||||
|
@ -17,10 +17,12 @@ class SignupViewTest(TestCase):
|
|||||||
resp = self.client.post(reverse("index"), {"email": "foo@example.com"},
|
resp = self.client.post(reverse("index"), {"email": "foo@example.com"},
|
||||||
follow=True,
|
follow=True,
|
||||||
HTTP_USER_AGENT="foo-agent",
|
HTTP_USER_AGENT="foo-agent",
|
||||||
REMOTE_ADDR="127.0.0.2")
|
REMOTE_ADDR="127.0.0.2",
|
||||||
|
HTTP_REFERRER="example.org/good-place")
|
||||||
self.assertEqual(resp.redirect_chain, [('/?success=subscribed', 302)])
|
self.assertEqual(resp.redirect_chain, [('/?success=subscribed', 302)])
|
||||||
self.assertContains(resp, "You are now subscribed!")
|
self.assertContains(resp, "You are now subscribed!")
|
||||||
obj = Signup.objects.get()
|
obj = Signup.objects.get()
|
||||||
self.assertEqual(obj.email, "foo@example.com")
|
self.assertEqual(obj.email, "foo@example.com")
|
||||||
self.assertEqual(obj.anonymized_ip, "127.0.0.0")
|
self.assertEqual(obj.anonymized_ip, "127.0.0.0")
|
||||||
self.assertEqual(obj.user_agent, "foo-agent")
|
self.assertEqual(obj.user_agent, "foo-agent")
|
||||||
|
self.assertEqual(obj.referrer, "example.org/good-place")
|
||||||
|
@ -33,8 +33,9 @@ def index(request):
|
|||||||
s = Signup(
|
s = Signup(
|
||||||
email=request.POST.get("email"),
|
email=request.POST.get("email"),
|
||||||
anonymized_ip=anonymous_ip,
|
anonymized_ip=anonymous_ip,
|
||||||
user_agent=request.META["HTTP_USER_AGENT"],
|
user_agent=request.META['HTTP_USER_AGENT'],
|
||||||
geoip=geoip,
|
geoip=geoip,
|
||||||
|
referrer=request.META.get('HTTP_REFERRER', ''),
|
||||||
)
|
)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
Loading…
Reference in New Issue
Block a user