django Porjekt umbenennen

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
würmchen
User
Beiträge: 255
Registriert: Mittwoch 7. November 2007, 14:17

Hi Leute,
ich hab ein Projekt in Django entwickelt und würde es gerne umbenennen.
Es wurde damals ein Ordner "projektname" angelegt und den würde ich eben gerne in etwas treffenderes umbenennen. Wenn ich den Ordner einfach umbenenne dann funktionieren alle imports nicht mehr.

Kann mir da jemand einen Tipp geben?
Zuletzt geändert von würmchen am Donnerstag 26. März 2009, 10:56, insgesamt 1-mal geändert.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Imports mit anpassen, was denn auch sonst.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
würmchen
User
Beiträge: 255
Registriert: Mittwoch 7. November 2007, 14:17

Ok, war mit einem

Code: Alles auswählen

find ./ -type f -name '*.py' -exec sed -i 's/oldproject\./newproject\./g' {} \;
dann auch nicht so schwer, danke
apollo13
User
Beiträge: 827
Registriert: Samstag 5. Februar 2005, 17:53

Und ab jetzt den Projektnamen komplett weglassen! Denn der verhindert pluggable Apps...
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

Dann muss man allerdings ggf. ein bisschen mit den Pfaden in manage.py spielen. Ein Tipp wäre, sich anzuschauen, wie Pinax das Problem löst. Als ich geschaut hatte, haben die ein "apps"-Verzeichnis für alle Anwendungen in den Pfad eingetragen. Alles per setup.py in den Systempfad von Python zu installieren fände ich als mögliche Alternative nicht so gut.

Stefan
apollo13
User
Beiträge: 827
Registriert: Samstag 5. Februar 2005, 17:53

musst du nicht, der ordner indem sich manage.py befindet wird automatisch in den pythonpfad geschmissen...
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

Den Ordner will ich mir aber nicht vollmüllen. Ich liebe es da sauber und habe da nur manage.py, settings.py, urls.py, apps/, templates/, media/ und die Entwicklungsdatenbank liegen. Habe ich mir so von Pinax abgeschaut.

Stefan
apollo13
User
Beiträge: 827
Registriert: Samstag 5. Februar 2005, 17:53

Klar, die Apps müssen nur irgendwo am Pythonpath liegen, das ganze manage.py ist ja nur ein schnelles startup für Leute die keinen Plan haben; lehrt aber ansich falsches...
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

apollo13 hat geschrieben:Klar, die Apps müssen nur irgendwo am Pythonpath liegen, das ganze manage.py ist ja nur ein schnelles startup für Leute die keinen Plan haben; lehrt aber ansich falsches...
Wieso? Wie ruft du denn sonst bitte "syncdb", "runserver" und die anderen Management-Befehle auf? Mehr macht das Script doch auch nicht. Was soll daran falsch sein?

Stefan
apollo13
User
Beiträge: 827
Registriert: Samstag 5. Februar 2005, 17:53

django-admin.py --settings my_settings syncdb
Das ist ansich alles was du brauchst. Das ganze Projektgehabe ist ja nur syntaktischer Überguss und verleitet viele Anfänger auch noch dazu from my_project.my_app zu importieren, da sie nicht wissen bzw noch nicht verstehen (als python anfänger), dass eine App nur Python ist, nicht mehr und nicht weniger...

EDIT:// Diesen Beitrag von malcolmt find ich auch sehr gut: http://www.pointy-stick.com/blog/2007/1 ... -projects/
würmchen
User
Beiträge: 255
Registriert: Mittwoch 7. November 2007, 14:17

Interessanter Artikel, da ich natürlich grasshopper bin hab ich alles falsch gemacht :-) Aber mal sehen was ich daraus lern.

Ich denke ich werde auch versuchen das /apps und /media Konzept durchzusetzen, gibt es da eine genauere Beschreibung, wie man das anstellt?
apollo13
User
Beiträge: 827
Registriert: Samstag 5. Februar 2005, 17:53

Nichts wovon ich auch die schnelle wüsste, aber mit etwas probieren fndest du es sicher selbst heraus.
Antworten